Back to Devexpress

TreeListNodeIterator Class

wpf-devexpress-dot-xpf-dot-grid-a4ea5447.md

latest4.1 KB
Original Source

TreeListNodeIterator Class

The Node Iterator.

Namespace : DevExpress.Xpf.Grid

Assembly : DevExpress.Xpf.Grid.v25.2.dll

NuGet Package : DevExpress.Wpf.Grid.Core

Declaration

csharp
public class TreeListNodeIterator :
    IEnumerator<TreeListNode>,
    IDisposable,
    IEnumerator,
    IEnumerable<TreeListNode>,
    IEnumerable
vb
Public Class TreeListNodeIterator
    Implements IEnumerator(Of TreeListNode),
               IDisposable,
               IEnumerator,
               IEnumerable(Of TreeListNode),
               IEnumerable

Remarks

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.

To iterate through the nodes, do the following.

To learn more, see Iterating Through Nodes.

Example

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.

View Example: Iterate Through Nodes With the TreeListNodeIterator

xaml
<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>
cs
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);
}
vb
Private Sub SmartExpandNodes(ByVal minChildCount As Integer)
    Dim nodeIterator As TreeListNodeIterator = New TreeListNodeIterator(Me.view.Nodes, True)
    While nodeIterator.MoveNext()
        nodeIterator.Current.IsExpanded = nodeIterator.Current.Nodes.Count >= minChildCount
    End While
End Sub

Private Sub OnGridLoaded(ByVal sender As Object, ByVal e As RoutedEventArgs)
    SmartExpandNodes(4)
End Sub

Inheritance

Object TreeListNodeIterator

See Also

TreeListNodeIterator Members

DevExpress.Xpf.Grid Namespace