示例#1
0
        /// <summary>
        /// Adds the node from path.
        /// </summary>
        /// <param name="path">Path.</param>
        /// <param name = "dirList"></param>
        public void AddNodeFromPath(string path, List <string> dirList, List <string> foundList)
        {
            var ph = PathHierarchy(path);

            for (int i = 0; i < ph.Count; i++)
            {
                var p = ph[i];
                if (!treenode.PathExists(p.path))
                {
                    TreeNode pathParent = treenode.GetParentNodeInPath(p.path, treeroot);
                    TreeNode node       = new TreeNode();
                    node.parent           = pathParent;
                    node.name             = p.name;
                    node.path             = TreeNode.IHateSlashes(p.path);
                    node.isDirectory      = dirList.Exists((d) => d.Equals(node.path, StringComparison.OrdinalIgnoreCase));
                    node.isChecked        = foundList.Exists(f => f.Equals(node.path, StringComparison.OrdinalIgnoreCase)) && allCheckedByDefault;
                    node.lastCheckedState = node.isChecked;
                    if (node.isChecked)
                    {
                        selectedNodes.Add(node);
                    }
                    node.isExpanded = allExpandedByDefault;
                    pathParent.AddNode(node);
                }
            }
        }