/// <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); } } }