示例#1
0
        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);
            }
        }
示例#2
0
        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&lt;DirectoryNode&gt;.</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);
 }