欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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#程序设计能有所帮助!

上一篇:

下一篇: