/// <summary> /// 加载导航 /// </summary> private void LoadMenu() { myTree.Nodes.Clear(); protocolModels.Clear(); myTree.Refresh(); //获取所有分类 var classList = ProtocolDB.GetAllClassification(); //首级菜单 var fList = classList.Where(c => c.ParentID == "").ToList(); if (fList != null && fList.Count > 0) { for (int i = 0; i < fList.Count; i++) { TreeNode node = new TreeNode(); node.Text = $"[模块]{fList[i].PCName}"; node.Tag = new NodeSelectTag() { Model = fList[i], TagType = NodeSelectTag.TAGTYPE.Classisication, Target = node }; GetChildNodes(fList[i], node); myTree.Nodes.Add(node); } } myTree.Refresh(); }
/// <summary> /// 递归获取nodes /// </summary> /// <param name="_classModel"></param> /// <param name="_parentNode"></param> private void GetChildNodes(ProtocolClassificationModel _classModel, TreeNode _parentNode) { //获取所有分类 var classList = ProtocolDB.GetAllClassification(); //查找当前分类下的所有子类 var childList = classList.Where(c => c.ParentID == _classModel.PCID).ToList(); if (childList != null && childList.Count > 0) { for (int i = 0; i < childList.Count; i++) { TreeNode node = new TreeNode(); node.Text = $"[模块]{childList[i].PCName}"; node.Tag = new NodeSelectTag() { Model = childList[i], TagType = NodeSelectTag.TAGTYPE.Classisication, Target = node }; GetChildNodes(childList[i], node); _parentNode.Nodes.Add(node); } } //查找当前分类下的所有协议 var proList = ProtocolDB.GetProtocol(_classModel.PCID); if (proList != null && proList.Count > 0) { for (int i = 0; i < proList.Count; i++) { TreeNode node = new TreeNode(); node.Text = $"[协议]{ proList[i].Code}-{proList[i].CName}"; node.Tag = new NodeSelectTag() { Model = proList[i], TagType = NodeSelectTag.TAGTYPE.Protocol, Target = node }; _parentNode.Nodes.Add(node); //添加到所有协议中 protocolModels.Add(proList[i]); } } }