Back to Devexpress

TreeListNodeIterator.Current Property

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

latest4.9 KB
Original Source

TreeListNodeIterator.Current Property

Gets a node currently being processed by the TreeListNodeIterator object.

Namespace : DevExpress.Xpf.Grid

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

NuGet Package : DevExpress.Wpf.Grid.Core

Declaration

csharp
public TreeListNode Current { get; }
vb
Public ReadOnly Property Current As TreeListNode

Property Value

TypeDescription
TreeListNode

A TreeListNode object that is the node currently being processed.

|

Remarks

Use the TreeListNodeIterator.MoveNext method to iterate through the nodes. The currently processed node is returned by the Current property. Each time the TreeListNodeIterator.MoveNext method is called, the Node Iterator moves to the next node in the hierarchy and updates the Current property. If the current node is the last node, the TreeListNodeIterator.MoveNext method returns false.

To reset the Node Iterator to its initial state, call the TreeListNodeIterator.Reset method.

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

The following code snippet (auto-collected from DevExpress Examples) contains a reference to the Current property.

Note

The algorithm used to collect these code examples remains a work in progress. Accordingly, the links and snippets below may produce inaccurate results. If you encounter an issue with code examples below, please use the feedback form on this page to report the issue.

wpf-grid-sync-isnodeexpanded-with-view-model/CS/DevExpress.Example04/BindableExpandingBehavior.cs#L82

csharp
if(iterator.Current.Content == obj) {
    result = iterator.Current;
}

wpf-grid-sync-isnodeexpanded-with-view-model/VB/DevExpress.Example04/BindableExpandingBehavior.vb#L84

vb
If iterator.Current.Content Is obj Then
    result = iterator.Current
End If

See Also

MoveNext()

TreeListNodeIterator Class

TreeListNodeIterator Members

DevExpress.Xpf.Grid Namespace