界面组件DevExpress WPF中文教程:Grid - 如何遍历节点?

发布于:2025-06-21 ⋅ 阅读:(14) ⋅ 点赞:(0)

DevExpress WPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件的衍伸产品,还是以数据为中心的商业智能产品,都能通过DevExpress WPF控件来实现。

节点(Nodes)对应于数据源中的记录,并由TreeListNode对象表示。

Node Iterator允许您遍历节点,而无需编写递归代码。从指定节点开始,直到树中包含的最后一个节点,逐个访问节点。

下图说明了处理节点的顺序。

界面组件DevExpress WPF中文教程产品图集

获取DevExpress WPF 正式版下载

要遍历节点,请执行以下操作。

  • 创建TreeListNodeIterator类的一个新实例,多个构造函数允许您指定一个开始节点或节点集合,以及是否只处理可见节点。

注意:如果指定了节点集合,则从指定集合中的第一个节点开始处理节点。

要将节点迭代器重置为初始状态,请调用TreeListNodeIterator.Reset方法。

示例:如何遍历所有可见节点

此示例展示了如何遍历所有可见节点来展开具有4个子节点或更多子节点的节点,具有少于4个子节点的节点将被折叠。

界面组件DevExpress WPF中文教程产品图集

MainWindow.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>

MainWindow.xaml.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);
}

MainWindow.xaml.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


网站公告

今日签到

点亮在社区的每一天
去签到