Skip to main content

DevExpress v24.2 Update — Your Feedback Matters

Our What's New in v24.2 webpage includes product-specific surveys. Your response to our survey questions will help us measure product satisfaction for features released in this major update and help us refine our plans for our next major release.

Take the survey Not interested

Iterate Through Nodes

  • 2 minutes to read

The Node Iterator allows you to traverse through the nodes without writing recursive code. Nodes are visited one by one starting from a specified node down to the last node contained within a tree.

The image below illustrates the sequence in which nodes are processed.

treelistNodeIteration

To iterate through the nodes, do the following.

#Example: How to Iterate Through All Visible Nodes

This example shows how to traverse through all visible nodes to expand ones that have 4 or more child nodes. Nodes that have less than 4 child nodes are collapsed.

TreeListNodeIterator Example

View Example: Iterate Through Nodes With the TreeListNodeIterator

<dxg:GridControl x:Name="grid" 
                 AutoGenerateColumns="AddNew" 
                 EnableSmartColumnsGeneration="True" 
                 Loaded="OnGridLoaded">
    <dxg:GridControl.View>
        <dxg:TreeListView x:Name="view" AutoWidth="True"
                          KeyFieldName="ID" ParentFieldName="ParentID"/>
    </dxg:GridControl.View>
</dxg:GridControl>
void SmartExpandNodes(int minChildCount) {
    TreeListNodeIterator nodeIterator = new TreeListNodeIterator(view.Nodes, true);
    while (nodeIterator.MoveNext())
        nodeIterator.Current.IsExpanded = nodeIterator.Current.Nodes.Count >= minChildCount;
}

void OnGridLoaded(object sender, RoutedEventArgs e) {
    SmartExpandNodes(4);
}