关键代码:
/// <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); }
.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; }
说明:
代码逻辑很简单,就是递归遍历子节点,当节点属性是可见的时候,则添加到返回集合里面,不知道各位有好的方法没?希望有所帮助!
[DevExpress]获取可见子节点集合
时间: 2025-01-07 19:18:30