首页 > 代码库 > [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>(); DownRecursiveNode(node, n => { if (n.Visible) { 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); }<style type="text/css">.csharpcode, .csharpcode pre{ font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em;}.csharpcode .lnum { color: #606060; }</style>
说明:
代码逻辑很简单,就是递归遍历子节点,当节点属性是可见的时候,则添加到返回集合里面,不知道各位有好的方法没?希望有所帮助!
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。