Tree Generation Algorithm
- 2 minutes to read
The TreeListView is designed to display information in a tree from hierarchical data structures. To build a tree, the data source should contain two special fields.
Key Field
This field must contain unique values used to identify nodes. Its name should be assigned to the TreeListView.KeyFieldName property.
Parent Field
This field must contain values that indicate parent nodes. Its name should be assigned to the TreeListView.ParentFieldName property.
Columns bound to these fields are called service columns. By default, service columns are not created. To automatically create these columns, enable the TreeListView.AutoPopulateServiceColumns option.
NOTE
The data types of the Tree
#Root Nodes
Root nodes do not have parent nodes. The parent value of a root node does not point to a key value of any other node. Root nodes are contained within the TreeListView.Nodes collection.
Use the TreeListView.RootValue property to explicitly specify the root value (for instance, to build a tree from the specified hierarchy level). Once this property is specified (by default, it is set to null), the collection of root nodes contains only those nodes whose parent values equal to the root value. Nodes whose parent values do not point to any other node are ignored and not displayed within a tree.
The following example demonstrates how to modify the tree shown above to display data from the specified hierarchy level. To do this, the TreeListView.RootValue property is set to 1. Since the service fields store integer values, the type of the value assigned to this property, must also be integer.
<dxg:TreeListView Name="treeListView"
KeyFieldName="ID" ParentFieldName="ParentID">
<dxg:TreeListView.RootValue>
<sys:Int32>1</sys:Int32>
</dxg:TreeListView.RootValue>
</dxg:TreeListView>
The image below shows the result.