亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

DevExpress實現TreeList節點互斥的方法

2020-01-24 02:34:50
字體:
來源:轉載
供稿:網友

本文實例講述了DevExpress實現TreeList節點互斥的方法,具體實現方法如下所示:

主要功能代碼如下:

/// <summary>/// 節點互斥同步/// 說明/// eg:///TreeListNode _node = e.Node;///_node.SyncMutexNodeCheckState(_node.CheckState, n => n.GetNodeType() == NodeType.Cab);/// </summary>/// <param name="node">需要互斥同步的節點</param>/// <param name="checkState">節點狀態</param>/// <param name="checkHanlder">互斥條件【委托】</param>public static void SyncMutexNodeCheckState(this TreeListNode node, CheckState checkState, Predicate<TreeListNode> checkHanlder){  TreeList _tree = node.TreeList;  if (checkHanlder(node))//當前節點符合互斥條件時候  { _tree.DownRecursiveTree(n => n.CheckState = CheckState.Unchecked);  }  else  { TreeListNode _curParentNode = node.GetParentNode(checkHanlder);//獲取符合互斥條件的父節點 if (_curParentNode == null) return; TreeListNode _thePubleNode = node.GetPublicParentNode(checkHanlder);//獲取符合互斥條件的公共父節點 if (_thePubleNode == null) return; foreach (TreeListNode n in _thePubleNode.Nodes) {   foreach (TreeListNode nc in n.Nodes)   { if (nc != _curParentNode) {   nc.CheckState = CheckState.Unchecked;   nc.DownRecursiveNode(nr => nr.CheckState = CheckState.Unchecked); }   } }  }  node.SyncNodeCheckState(checkState);  node.CheckState = checkState;}}/// <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;}/// <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;}

SyncNodeCheckState代碼可以參考://www.49028c.com/article/53335.htm

說明:

如上圖所示,節點“Test3”和“蒙自路Test2”都是"cab"類型;
當調用代碼如下:

TreeListNode _node = e.Node;_node.SyncMutexNodeCheckState(_node.CheckState, n => n.GetNodeType() == NodeType.Cab);

實現的效果就是要么只能勾選“Test3”或者“蒙自路Test2”節點或者子節點,不同同時勾選,應該就是互斥的意思;也是這段代碼想實現的效果,希望對大家的項目開發有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久中文久久字幕| 91色视频在线导航| 亚洲精品98久久久久久中文字幕| 色yeye香蕉凹凸一区二区av| 91国产视频在线| 欧美综合激情网| 久久人人97超碰精品888| 日韩精品免费在线播放| 久久视频在线看| 18性欧美xxxⅹ性满足| 久久精品视频播放| 久久久成人的性感天堂| 国产成人激情小视频| 日韩中文字幕国产| 日韩亚洲在线观看| 国产成人aa精品一区在线播放| 欧美亚洲视频在线观看| 日本伊人精品一区二区三区介绍| 91在线免费视频| 日韩久久免费电影| 国产精品扒开腿爽爽爽视频| 欧美黄色www| 日本精品一区二区三区在线播放视频| 97精品视频在线| 一本色道久久综合狠狠躁篇怎么玩| 欧美激情aaaa| 亚洲第一天堂无码专区| 午夜精品蜜臀一区二区三区免费| 91国产美女视频| 亚洲欧美三级在线| 久久人人爽人人爽人人片亚洲| 欧美激情视频在线观看| 欧美插天视频在线播放| 国产精品一区久久| 欧洲亚洲在线视频| 亚洲国产私拍精品国模在线观看| 久久久久久久久国产精品| 欧美亚洲国产精品| 亚洲最大成人免费视频| 奇米四色中文综合久久| 欧美性xxxx极品高清hd直播| 91国产高清在线| www.欧美免费| 中文字幕日韩精品在线| 亚洲第一中文字幕| 国产亚洲视频在线观看| 精品国产福利视频| 国产成人精品a视频一区www| 欧美大肥婆大肥bbbbb| 国产精品久久久精品| 日韩av三级在线观看| 91精品国产成人www| 亚洲a级在线播放观看| 成人中文字幕+乱码+中文字幕| 日本精品视频在线观看| 亚洲欧美国产视频| 麻豆国产精品va在线观看不卡| 中文字幕日韩欧美在线视频| 亚洲精品wwwww| 国产精品99导航| 国产精品午夜国产小视频| 国产视频精品自拍| 亚洲第一区中文字幕| 中文字幕在线观看亚洲| 91精品国产一区| 姬川优奈aav一区二区| 亚洲sss综合天堂久久| 欧美日韩ab片| 欧美性猛交xxxxx免费看| 91高清免费在线观看| 亚洲欧美日韩网| 国产主播欧美精品| 超薄丝袜一区二区| 中文字幕日韩精品在线观看| 国产精彩精品视频| 国产精品爽黄69天堂a| 久久福利视频网| zzijzzij亚洲日本成熟少妇| 久久99青青精品免费观看| 在线精品国产成人综合| 日韩av影视在线| 好吊成人免视频| 亚洲国产成人精品女人久久久| 国产亚洲精品久久| 欧美午夜美女看片| 亚洲天堂第二页| 91网站免费观看| 成人性生交xxxxx网站| 成人免费视频xnxx.com| 91网站免费观看| 97色在线播放视频| 中文字幕日韩欧美| 国产精品视频播放| 国内伊人久久久久久网站视频| 精品中文视频在线| 国产精品露脸av在线| 国内外成人免费激情在线视频网站| 亚洲自拍高清视频网站| 成人有码视频在线播放| 国产精品第一区| 欧美另类老肥妇| 中文字幕亚洲欧美在线| 亚洲欧洲一区二区三区在线观看| 最新的欧美黄色| 久久91亚洲人成电影网站| 亚洲欧美日韩精品久久亚洲区| 亚洲午夜未满十八勿入免费观看全集| 亚洲成人三级在线| 久久在线免费观看视频| 日韩免费观看av| 在线电影av不卡网址| 中文综合在线观看| 久久亚洲欧美日韩精品专区| 成人免费视频在线观看超级碰| 国产激情综合五月久久| 中文字幕精品影院| 久久夜精品va视频免费观看| 国产精品第一视频| 久久久精品亚洲| 色综合久久中文字幕综合网小说| 亚洲香蕉在线观看| 精品久久中文字幕| 亚洲视频在线观看| 亚洲人精选亚洲人成在线| 久久免费精品日本久久中文字幕| 欧美亚州一区二区三区| 久久久久久久香蕉网| 性欧美暴力猛交69hd| 91精品视频一区| 国产69精品99久久久久久宅男| 18久久久久久| 亚洲免费高清视频| 欧美成年人视频网站欧美| 欧美精品videosex性欧美| 精品久久久久人成| 日韩av日韩在线观看| 午夜精品一区二区三区av| 国产精品www色诱视频| 久久国产精品网站| 国产精品va在线播放| 九色成人免费视频| 主播福利视频一区| 91久久嫩草影院一区二区| 亚洲国产成人av在线| 成人看片人aa| 欧美理论片在线观看| 久久久久久国产精品| 成人免费网站在线看| 国产精品大陆在线观看| 欧美超级乱淫片喷水| 欧美另类在线播放| 成人黄色中文字幕| 国产日韩欧美另类| 国产精品日韩在线观看| 国产精品自产拍高潮在线观看| 午夜精品理论片| 欧美激情在线有限公司| 精品国产一区av| 午夜精品福利在线观看| 7777kkkk成人观看| 亚洲视频一区二区三区| 国产香蕉一区二区三区在线视频| 91tv亚洲精品香蕉国产一区7ujn| 91精品一区二区|