• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > DevExpress实现TreeList向上递归获取公共父节点的方法

DevExpress实现TreeList向上递归获取公共父节点的方法

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了devexpress treelist,treelist选中节点,treelist添加节点,treelist 节点图片,treelist等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

有时候在进行C#项目开发中,需要获取到公共节点,如下图所示:

譬如,当点击“Test103-2”节点,其类型是“灯”类型,那怎么获取到“中心区域”这个类型是“地域”的公共节点?对此具体实现方法如下:

主要功能代码如下:

/// <summary>
/// 向上递归,获取符合条件的父节点
/// </summary>
/// <param name="node">需要向上递归的节点</param>
/// <param name="conditionHanlder">判断条件【委托】</param>
/// <returns>符合条件的节点【TreeListNode】</returns>
public static TreeListNode GetParentNode(this TreeListNode node, Predicate<TreeListNode> conditionHanlder)
{
  TreeListNode _parentNode = node.ParentNode;//获取上一级父节点
  TreeListNode _conditonNode = null;
  if (_parentNode != null)
  {
 if (conditionHanlder(_parentNode))//判断上一级父节点是否符合要求
 {
   _conditonNode = _parentNode;
 }
 if (_conditonNode == null)//若没有找到符合要求的节点,递归继续
   _conditonNode = GetParentNode(_parentNode, conditionHanlder);
  }
  return _conditonNode;
}
/// <summary>
/// 向上递归节点
/// </summary>
/// <param name="node">需要向上递归的节点</param>
/// <param name="conditionHanlder">委托,返回fasle跳出递归;返回true继续递归;</param>
public static void UpwardRecursiveNode(this TreeListNode node, Predicate<TreeListNode> conditionHanlder)
{
  TreeListNode _parentNode = node.ParentNode;
  if (_parentNode != null)
  {
 if (conditionHanlder(_parentNode))
 {
   UpwardRecursiveNode(_parentNode, conditionHanlder);
 }
  }
}
/// <summary>
/// 向上递归,获取符合条件的节点的公共父节点
/// </summary>
/// <param name="node">操作节点</param>
/// <param name="checkHanlder">委托</param>
/// <returns>符合条件的节点</returns>
public static TreeListNode 
GetPublicParentNode

(this TreeListNode node, Predicate<TreeListNode> checkHanlder)
{
  TreeListNode _publicPNode = null;
  TreeListNode _findNode = node.GetParentNode(checkHanlder);//先获取到条件判断的自身父节点
  if (_findNode != null)
  {
 //开始向上递归
 UpwardRecursiveNode(_findNode, n =>
 {
   TreeListNode _curpublicNode = n.ParentNode;//获取当前向上递归的父节点
   if (_curpublicNode != null)
   {
 if (_curpublicNode.Nodes.Count > 1)//若有多个子节点,则是公共父节点
 {
   _publicPNode = _curpublicNode;
   return false;//跳出递归
 }
   }
   return true;//继续递归
 });
  }
  return _publicPNode;
}

</div>

希望本文所述示例对大家进行类似的C#项目开发能有所帮助!

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Devexpress treelist 简介
  • DevExpress TreeList 常见问题解决方法
  • DevExpress获取TreeList可视区域节点集合的实现方法
  • DevExpress之TreeList用法实例总结
  • DevExpress设置TreeList图片节点背景色的方法
  • DevExpress实现TreeList向上递归获取符合条件的父节点
  • DevExpress实现TreeList向上递归获取公共父节点的方法
  • DevExpress实现TreeList节点互斥的方法
  • DevExpress实现TreeList父子节点CheckState状态同步的方法
  • DevExpress实现TreeList按条件隐藏节点CheckBox的方法

相关文章

  • 2017-05-28C#实现将DataTable内容输出到Excel表格的方法
  • 2017-05-28c#重写TabControl控件实现关闭按钮的方法
  • 2017-05-28C#获取关键字附近文字算法实例
  • 2017-05-28C# 后台处理图片的几种方法
  • 2017-05-28C#枚举类型与结构类型实例解析
  • 2017-05-28详解如何选择使用ArrayList、HashTable、List、Dictionary数组
  • 2017-05-28C#实现解析百度天气数据,Rss解析百度新闻以及根据IP获取所在城市的方法
  • 2017-05-28C#获取汉字字符串拼音首字母的方法
  • 2017-05-28c#基数排序Radix sort的实现方法
  • 2017-05-28C#中GraphicsPath的Widen方法用法实例

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • winform实现拖动文件到窗体上的方法
    • C# RSA分段加解密实现方法详解
    • c#扩展datatable转json示例
    • c# 获取数据库中所有表名称的方法
    • C# DataTable的详细用法分享
    • C#利用Openxml读取Excel数据实例
    • 获取字符串中的汉字拼音首字母
    • C#实现win10 uwp 右击浮出窗在点击位置
    • C# Pointer指针应用实例简述
    • c#实现无标题栏窗口的拖动

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有