public static void AddSubItems(this ITreeItemWrapper self, TypedTreeNodeItem <ITreeItemWrapper> mnode, ITreeItemWrapper mainItem, List <ITreeItemWrapper> items) { List <ITreeItemWrapper> subItems = items.FindAll(p => self.CheckGetSubItems(p, mainItem)); foreach (ITreeItemWrapper subItem in subItems) { TypedTreeNodeItem <ITreeItemWrapper> subnode = self.GetTreeNodeItemByDataItem(subItem, mnode); self.AddSubItems(subnode, subItem, items); mnode.SubNodes.Add(subnode); } }
public static List <TypedTreeNodeItem <ITreeItemWrapper> > GetAllTreeItems(this ITreeItemWrapper self) { List <TypedTreeNodeItem <ITreeItemWrapper> > nodes = new List <TypedTreeNodeItem <ITreeItemWrapper> >(); List <ITreeItemWrapper> allItems = self.FindAllItems(); if (allItems == null || allItems.Count <= 0) { return(nodes); } List <ITreeItemWrapper> topItems = allItems.FindAll(p => (self.CheckIsRoot(p))); foreach (ITreeItemWrapper topItem in topItems) { TypedTreeNodeItem <ITreeItemWrapper> topnode = self.GetTreeNodeItemByDataItem(topItem, null); self.AddSubItems(topnode, topItem, allItems); nodes.Add(topnode); } return(nodes); }