public void AfterExpand(UltraTreeNode node, ImageList.ImageCollection images) { if (!ChildrenDic.ContainsKey(node.Key) || ChildrenDic[node.Key].IsNullOrEmpty()) { return; } node.Nodes.Clear(); BuildSubTree(node, ChildrenDic[node.Key], images); }
/// <summary> /// 更新字典中缓存内容 /// </summary> /// <param name="key"></param> /// <param name="getChildren"></param> protected void UpdateDic(string key, Func <List <T> > getChildren) { var model = ParentsToBeUpdated?.Find(key); if (model != null) { ParentsToBeUpdated.Remove(model); if (ChildrenDic.ContainsKey(key)) { ChildrenDic[key] = getChildren(); } } if (!ChildrenDic.ContainsKey(key)) { ChildrenDic.Add(key, getChildren()); } }
/// <summary> /// 获取子类集合 /// </summary> /// <param name="selectedNodes">选中的树节点集合</param> /// <param name="getChildren"></param> public List <T> GetChildren(SelectedNodesCollection selectedNodes, Func <List <T> > getChildren = null) { var children = new List <T>(); foreach (var node in selectedNodes) { if (ChildrenDic.ContainsKey(node.Key) && ChildrenDic[node.Key].IsNotNullorEmpty()) { children.AddRange(ChildrenDic[node.Key]); } else if (getChildren != null && getChildren().IsNotNullorEmpty()) { ChildrenDic.Add(node.Key, getChildren()); } } return(children); }