public void AddChildNodesToTree() { TreeNode treeNode = new TreeNode("Root"); VFSNode node1 = new VFSNode(); node1.VFSPath = "3DDATA\\ELDEON\\TEST1.DDS"; VFSNode node2 = new VFSNode(); node2.VFSPath = "3DDATA\\ELDEON\\TEST2.DDS"; treeNode.AddChildNode(node1); treeNode.AddChildNode(node2); Assert.IsTrue(treeNode.FirstNode.Nodes.Count == 2); }
public static void AddChildNode(this TreeNode treeNode, VFSNode node) { string[] folders = node.VFSPath.Split(new[] { "\\" }, StringSplitOptions.RemoveEmptyEntries); int index = 1; for (TreeNode nested = treeNode; index < folders.Length; index++) { var getValuePath = folders[index]; var foundNode = nested.Nodes.Cast <TreeNode>().Where(x => x.Text == getValuePath); if (foundNode.Count() == 0) { nested.Nodes.Add(getValuePath).Tag = node; } nested = foundNode.FirstOrDefault(); } }