DevExpress获取节点下可视区域子节点集合的实现方法
程序员文章站
2023-12-17 16:59:04
递归获取节点是很多程序项目中常见的技巧。本文就以实例展示了devexpress获取节点下可视区域子节点集合的实现方法。分享给大家供参考之用,具体方法如下:
关键部分代码如...
递归获取节点是很多程序项目中常见的技巧。本文就以实例展示了devexpress获取节点下可视区域子节点集合的实现方法。分享给大家供参考之用,具体方法如下:
关键部分代码如下:
/// <summary> /// 向下递归treelistnode节点 /// </summary> /// <param name="node">需要向下递归的节点</param> /// <param name="conditionhanlder">委托</param> public static void downrecursivenode(this treelistnode node, action<treelistnode> conditionhanlder) { foreach (treelistnode _childnode in node.nodes) { conditionhanlder(_childnode); downrecursivenode(_childnode, conditionhanlder); } } /// <summary> /// 获取节点下可视区域子节点集合 /// </summary> /// <param name="node">需要获取可见子节点的节点</param> /// <param name="conditonhanlder">条件委托</param> /// <returns>可见子节点集合</returns> public static list<treelistnode> getvisiblechildnodes(this treelistnode node, predicate<treelistnode> conditonhanlder) { list<treelistnode> _visiblechildnodes = new list<treelistnode>(); treelist _tree = node.treelist; downrecursivenode(node, n => { rowinfo _rowinfo = _tree.viewinfo.rowsinfo[n]; if (_rowinfo != null) { if (conditonhanlder(n)) { _visiblechildnodes.add(n); } } }); return _visiblechildnodes; } /// <summary> /// 获取节点下可视区域子节点集合 /// </summary> /// <param name="node">需要获取可见子节点的节点</param> /// <returns>可见子节点集合</returns> public static list<treelistnode> getvisiblechildnodes(this treelistnode node) { return getvisiblechildnodes(node, n => 1 == 1); }
希望本文所述方法对大家的c#程序设计能有所帮助!