下面的代码实现了自定义排序算法。 接管了 TreeList.CompareNodeValues 事件来实现此目的。 所实现的排序机制把有子节点的节点排列在上面,而把没有子节点的节点排列在下面。
下面的插图显示了按照 Department 列以升序和降序排序的控件。 注意, Finance 节点始终位于有子节点的节点的下面。
C# | 复制代码 |
---|---|
using DevExpress.XtraTreeList; private void treeList1_CompareNodeValues(object sender, CompareNodeValuesEventArgs e) { if (e.Node1.HasChildren && !e.Node2.HasChildren) e.Result = e.SortOrder == SortOrder.Ascending ? -1 : 1; if (!e.Node1.HasChildren && e.Node2.HasChildren) e.Result = e.SortOrder == SortOrder.Ascending ? 1 : -1; } |
Visual Basic | 复制代码 |
---|---|
Imports DevExpress.XtraTreeList Private Sub TreeList1_CompareNodeValues(ByVal sender As Object, _ ByVal e As CompareNodeValuesEventArgs) Handles TreeList1.CompareNodeValues If e.Node1.HasChildren And Not e.Node2.HasChildren Then e.Result = IIf(e.SortOrder = SortOrder.Ascending, -1, 1) End If If Not e.Node1.HasChildren And e.Node2.HasChildren Then e.Result = IIf(e.SortOrder = SortOrder.Ascending, 1, -1) End If End Sub |