Пример #1
0
        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();
            }
        }