DevExpress实现TreeList向上递归获取符合条件的父节点
本文实例展示了DevExpress实现TreeList向上递归获取符合条件的父节点的方法,在一些项目开发中比较有实用价值,具体实现方法如下所示:
主要功能代码如下:
///<summary>
///向上递归,获取符合条件的父节点
///</summary>
///<paramname="node">需要向上递归的节点</param>
///<paramname="conditionHanlder">判断条件【委托】</param>
///<returns>符合条件的节点【TreeListNode】</returns>
publicstaticTreeListNodeGetParentNode(thisTreeListNodenode,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;
}
代码使用方法如下:
TreeListNode_node=e.Node; TreeListNode_condionParent=_node.GetParentNode(n=>n.GetNodeType()==NodeType.Cab);//获取类型为CAB类型的父节点 Trace.WriteLine(_condionParent.GetName());