这篇文章主要介绍了DevExpress获取节点下可视区域子节点集合的实现方法,是C#程序设计中较为常见的技巧,需要的朋友可以参考下
递归获取节点是很多程序项目中常见的技巧。本文就以实例展示了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#程序设计能有所帮助! |
|