DevExpress TreeList 实现父节点列值选中,其下子节点也全部选中

    科技2025-05-05  12

    如果只是想实现节点选中的话,TreeList其实是由一个参数,可以控制父节点选中时,其子节点也一并选中的。

    这里是针对TreeList的其他列值,因此用到了递归。

    效果图:

    /// <summary> /// 递归树 /// </summary> /// <param name="parentNode">父节点:即焦点节点</param> /// <param name="val">父节点的值</param> /// <param name="colID">列值</param> private void GetChildNodes(TreeListNode parentNode, bool val, TreeListColumn colID) { if (parentNode.Nodes.Count > 0) { foreach (TreeListNode node in parentNode.Nodes) { if (node.Nodes.Count > 0) { GetChildNodes(node, val, colID); node.SetValue(colID, val); } else { node.SetValue(colID, val); } } } }

    我是在CellValueChanged的时候调用的,这有个弊端就是不是点中就触发,还需要回车才可以触发:

    private void PerTree_CellValueChanged(object sender, DevExpress.XtraTreeList.CellValueChangedEventArgs e) { GetChildNodes(PerTree.FocusedNode, bool.Parse(PerTree.FocusedNode.GetValue(e.Column).ToString()), e.Column); }

     

    Processed: 0.018, SQL: 8