private void FillUsersGroups_Children(TreeItem parentNode, TreeViewSelectMode mode) { foreach (var item in Groups.GetByParentID(parentNode.id)) { TreeItem node = new TreeItem(); node.label = item.Title; node.id = item.ID; switch (mode) { case TreeViewSelectMode.Single: //node.radio = true; break; case TreeViewSelectMode.Multiple: node.checkbox = true; break; default: break; } node.branch = new List <TreeItem>(); FillUsersGroups_Children(node, mode); parentNode.branch.Add(node); } }
private List <TreeItem> FillUsersGroups_Root(TreeViewSelectMode mode) { List <TreeItem> list = new List <TreeItem>(); foreach (var item in Groups.GetRoot(_groupType)) { TreeItem node = new TreeItem(); node.label = item.Title; node.id = item.ID; switch (mode) { case TreeViewSelectMode.Single: //node.radio = true; break; case TreeViewSelectMode.Multiple: node.checkbox = true; break; default: break; } node.branch = new List <TreeItem>(); FillUsersGroups_Children(node, mode); list.Add(node); } return(list); }
private void SetNodeExpandedState(IEnumerable <XamDataTreeNode> nodes, int nodeSelected, List <int> listParent, TreeViewSelectMode selectMode = TreeViewSelectMode.All) { foreach (var item in nodes) { var data = item.Data as DirectoryNode; if (data != null) { ApplicationContext.NodeId = nodeSelected; if (listParent.Contains(data.NodeId)) { item.IsExpanded = true; } if (ApplicationContext.ExpandedIds != null && ApplicationContext.ExpandedIds.Contains(data.NodeId)) { item.IsExpanded = true; } if (nodeSelected != 0) { if (selectMode == TreeViewSelectMode.All) { if (data.NodeId == nodeSelected) { item.IsSelected = true; } } else if (selectMode == TreeViewSelectMode.Endpoint) { if (data.NodeId == nodeSelected && !data.IsFolder) { item.IsSelected = true; } } else if (selectMode == TreeViewSelectMode.Folder) { if (data.NodeId == nodeSelected && data.IsFolder) { item.IsSelected = true; } } } item.IsDropTarget = data.IsFolder; } SetNodeExpandedState(item.Nodes, nodeSelected, listParent, selectMode); } }
/// <summary> /// Makes the tree. /// </summary> /// <param name="folderId">The folder identifier.</param> /// <param name="currentDirectoryNode">The current directory node.</param> /// <returns>ObservableCollection<DirectoryNode>.</returns> public static ObservableCollection <DirectoryNode> MakeTree(int folderId, out DirectoryNode currentDirectoryNode, TreeViewSelectMode selectMode = TreeViewSelectMode.All) { var directoryComputerRequest = new DirectoryComputerRequest(); var allDirectoryComputer = ServiceManager.Invoke( sc => RequestResponseUtils.GetData <List <DirectoryComputerItem> >(sc.GetAllDirectoryComputer, directoryComputerRequest)); _currentDirectoryNode = null; if (selectMode == TreeViewSelectMode.Folder) { allDirectoryComputer = (allDirectoryComputer.Where(a => a.IsDirectory)).ToList(); } else if (selectMode == TreeViewSelectMode.Endpoint) { allDirectoryComputer = (allDirectoryComputer.Where(a => !a.IsDirectory)).ToList(); } ApplicationContext.ImportNodes = new ObservableCollection <DirectoryNode>(); var result = BuildTree(allDirectoryComputer, 0, folderId); currentDirectoryNode = _currentDirectoryNode; return(result); }
public void SelectTreeNode(int nodeSelected, List <int> parentList, TreeViewSelectMode selectMode = TreeViewSelectMode.All) { _view.DataTree.SelectedDataItems = null; SetNodeExpandedState(_view.DataTree.Nodes, nodeSelected, parentList, selectMode); }