public Form2() { InitializeComponent(); DataSet dataSet = new DataSet(); dataSet.ReadXml("Data.xml"); for (int i = 0; i < dataSet.Tables[0].Rows.Count; i++) { int parentId = Int32.Parse(dataSet.Tables[0].Rows[i]["ParentCategoryId"].ToString()); if (parentId != 0 && myFilterableTreeView1.TreeDictionary.ContainsKey(parentId) == true) { MyTreeNodeEx parentNode = myFilterableTreeView1.TreeDictionary[parentId]; MyTreeNodeEx node = new MyTreeNodeEx(); node.NodeId = Int32.Parse(dataSet.Tables[0].Rows[i]["CategoryId"].ToString()); node.ParentNodeId = parentId; node.Text = dataSet.Tables[0].Rows[i]["Name"].ToString(); myFilterableTreeView1.AddNode(parentNode, node);//Add node to the exist node which is the parentNode } else if (parentId == 0) { MyTreeNodeEx node = new MyTreeNodeEx(); node.NodeId = Int32.Parse(dataSet.Tables[0].Rows[i]["CategoryId"].ToString()); node.ParentNodeId = parentId; node.Text = dataSet.Tables[0].Rows[i]["Name"].ToString(); myFilterableTreeView1.AddNode(parentId, node);//Add root of treeView } } Console.WriteLine(myFilterableTreeView1.TreeDictionary.Count); }
private void AddChildNode(MyTreeNodeEx myTree, List <CategoryClass> subCategories) { if (subCategories != null) { for (int i = 0; i < subCategories.Count; i++) { MyTreeNodeEx ex = new MyTreeNodeEx(); ex.Text = subCategories[i].Name; myFilterableTreeView1.AddNode(myTree, ex); AddChildNode(ex, subCategories[i].SubCategories); //TODO you are at here } } }
public Form3() { InitializeComponent(); #region Sample data populate which is chained class dataSet = new DataSet(); dataSet.ReadXml("Data.xml"); List <CategoryClass> lst = new List <CategoryClass>(); MyClass.Deserialize(lst, "SerializedData.xml"); for (int i = 0; i < lst.Count; i++) { MyTreeNodeEx myTree = new MyTreeNodeEx(); myTree.Text = lst[i].Name; myFilterableTreeView1.AddNode(null, myTree); AddChildNode(myTree, lst[i].SubCategories); } #endregion }