private void BindChildrenNodes(TriStateTreeViewNode currentNode) { var allModules = SysPermissionProvider.GetInstance().AllSysModules; var moduleChildren = allModules.FindAll(x => (x.Parent != null && x.Parent.ModuleID == currentNode.ID)); foreach (var element in moduleChildren) { var subNode = new TriStateTreeViewNode(currentNode) { ID = element.ModuleID, Name = element.ModuleName, NodeType = ModuleNodeType }; BindChildrenNodes(subNode); currentNode.ChildrenNodes.Add(subNode); } var allElements = SysPermissionProvider.GetInstance().AllSysModuleElements; var elementChildren = allElements.FindAll(x => x.ModuleID == currentNode.ID); foreach (var element in elementChildren) { var subNode = new TriStateTreeViewNode(currentNode) { ID = element.ElementID, Name = element.ElementName, NodeType = ElementNodeType }; currentNode.ChildrenNodes.Add(subNode); } }
private ObservableCollection <TriStateTreeViewNode> BuildTreeViewSource() { var treeViewRoots = new ObservableCollection <TriStateTreeViewNode>(); var rootModules = SysPermissionProvider.GetInstance().AllSysModules.FindAll(d => d.Parent == null); foreach (var module in rootModules) { var rootNode = new TriStateTreeViewNode(null) { ID = module.ModuleID, Name = module.ModuleName, NodeType = ModuleNodeType }; BindChildrenNodes(rootNode); treeViewRoots.Add(rootNode); } return(treeViewRoots); }