/// <summary> /// 根据list生成树状结构 /// </summary> /// <param name="treeViewInfos"></param> /// <returns></returns> public static List <TreeViewModel> GetTreeViewModel(List <TreeViewInfo> treeViewInfos) { List <TreeViewModel> treeViewModel = new List <TreeViewModel>(); foreach (var item in treeViewInfos) { TreeViewInfo info = treeViewInfos.Find(e => e.ID == item.ParentID); if (info == null) { TreeViewModel parent = new TreeViewModel(); List <TreeViewModel> children = GetChildrenNodes(treeViewInfos, item); parent.Id = item.ID; parent.Text = item.Name; if (children.Count != 0) { parent.Nodes = children; } treeViewModel.Add(parent); } } return(treeViewModel); }
/// <summary> /// 递归调用方式填充树状结构的子节点 /// </summary> /// <param name="treeViewInfos"></param> /// <param name="parentItem"></param> /// <returns></returns> List <TreeViewModel> GetChildrenNodes(List <TreeViewInfo> treeViewInfos, TreeViewInfo parentItem) { string parentID = parentItem.ID; List <TreeViewModel> treeViewList = new List <TreeViewModel>(); var children = treeViewInfos.Where(c => c.ParentID == parentID); foreach (var item in children) { TreeViewModel node = new TreeViewModel(); node.Id = item.ID; node.Text = item.Name; if (GetChildrenNodes(treeViewInfos, item).Count > 0) { node.Nodes = GetChildrenNodes(treeViewInfos, item); } treeViewList.Add(node); } return(treeViewList); }
public static IEnumerable <ITreeViewItemInfo> Draw(PreProcessing preProcessing, IEnumerable <IBoxInfo> yoloBoxes) { preProcessing.outputBitmap = (Bitmap)preProcessing.originalBitmap.Clone(); using var g = Graphics.FromImage(preProcessing.outputBitmap); var result = new List <ITreeViewItemInfo>(); foreach (var box in yoloBoxes) { if (result.Find(b => b.Title == box.Title) is ITreeViewItemInfo treeViewItemInfo) { treeViewItemInfo.Count++; treeViewItemInfo.Boxes.Add(box); } else { var info = new TreeViewInfo { Boxes = new List <IBoxInfo>(), Count = 1, Title = box.Title, Color = box.Color }; info.Boxes.Add(box); result.Add(info); } var pen = new Pen(box.Color, (float)Settings.Params.PenWidth); g.DrawRectangle(pen, box.Position); } var comparer = new Comparison <IBoxInfo>((x, y) => x.Position.X.CompareTo(y.Position.X)); foreach (var r in result) { r.Boxes.Sort(comparer); } return(result); }
public OutlookData LoadData() { XmlDocument doc = new XmlDocument(); string path = Path.Combine(env.WebRootPath, "data", "data.xml"); doc.Load(path); List <OutlookItem> outlist = new List <OutlookItem>(); List <OutlookItem> outlist1 = new List <OutlookItem>(); XmlNodeList list = doc.DocumentElement.SelectNodes("/root/Customers"); int count = list.Count - 7; int index = 0; foreach (XmlNode node1 in list) { if (count != -1 && index >= count) { OutlookItem txt1 = new OutlookItem(); txt1.ContactID = node1.SelectSingleNode("ContactID").InnerText; txt1.CompanyName = node1.SelectSingleNode("CompanyName").InnerText; txt1.ContactName = node1.SelectSingleNode("ContactName").InnerText; txt1.ContactTitle = node1.SelectSingleNode("ContactTitle").InnerText; txt1.Greetings = node1.SelectSingleNode("Greetings").InnerText; txt1.Message = node1.SelectSingleNode("Message").InnerText; txt1.To = node1.SelectSingleNode("To").InnerText; txt1.Address = node1.SelectSingleNode("Address").InnerText; txt1.City = node1.SelectSingleNode("City").InnerText; txt1.PostalCode = node1.SelectSingleNode("PostalCode").InnerText; txt1.Today = node1.SelectSingleNode("Today").InnerText; txt1.Time = node1.SelectSingleNode("Time").InnerText; txt1.Date = node1.SelectSingleNode("Date").InnerText; txt1.Day = node1.SelectSingleNode("Day").InnerText; txt1.Size = node1.SelectSingleNode("Size").InnerText; outlist1.Add(txt1); } if (index != 3 && index != 4 && index != 5 && index != 6 && index != 7 && index != 8 && index != 9 && index != 10) { OutlookItem txt = new OutlookItem(); txt.ContactID = node1.SelectSingleNode("ContactID").InnerText; txt.CompanyName = node1.SelectSingleNode("CompanyName").InnerText; txt.ContactName = node1.SelectSingleNode("ContactName").InnerText; txt.ContactTitle = node1.SelectSingleNode("ContactTitle").InnerText; txt.Greetings = node1.SelectSingleNode("Greetings").InnerText; txt.Message = node1.SelectSingleNode("Message").InnerText; txt.To = node1.SelectSingleNode("To").InnerText; txt.Address = node1.SelectSingleNode("Address").InnerText; txt.City = node1.SelectSingleNode("City").InnerText; txt.PostalCode = node1.SelectSingleNode("PostalCode").InnerText; txt.Today = node1.SelectSingleNode("Today").InnerText; txt.Time = node1.SelectSingleNode("Time").InnerText; txt.Date = node1.SelectSingleNode("Date").InnerText; txt.Day = node1.SelectSingleNode("Day").InnerText; txt.Size = node1.SelectSingleNode("Size").InnerText; outlist.Add(txt); } index++; } TreeViewInfo data = new TreeViewInfo { TreeData = treeData() }; MenuInfo data1 = new MenuInfo { MenuData = menuData() }; return(new OutlookData { OutlookItem = outlist, OutlookItem1 = outlist1, TreeviewDB = data, MenuDB = data1 }); }