2075 / WPF / Ієрархічне дерево (TreeView)
Додати tr1.Items.Add("Помідор"); tr1.Items.Add(new TreeViewItem() { Header = "Помідор" }); Показати tr1.Items.GetItemAt(0).ToString(); // увесь об'єкт Кількість tr1.Items.Count; Видалити tr1.Items.RemoveAt(0); tr1.Items.Remove(tr1.SelectedItem); Додати піделемент //1 ItemCollection items = tr1.Items; TreeViewItem newChild = new TreeViewItem(); newChild.Header = "Батько"; TreeViewItem newChild2 = new TreeViewItem(); newChild2.Header = "Син"; newChild.Items.Add(newChild2); tr1.Items.Add(newChild); //2 ItemCollection items = treeView1.Items; for (int i =1; i<=10 ; i++) { TreeViewItem newChild = new TreeViewItem(); newChild.Header = String.Format("Item {0}", i++); for (int x = 1; x <= 5; x++) { TreeViewItem newChild2 = new TreeViewItem(); newChild2.Header = String.Format("SubItem {0}", x); newChild.Items.Add(newChild2); } treeView1.Items.Add(newChild); } Обраний tr1.SelectedValue; treeView1.SelectedItem; // != null TreeViewItem selectedTVI = (TreeViewItem)tr1.SelectedItem; string res = selectedTVI.Header.ToString(); Обраний і два рази вгору string obr = ""; TreeViewItem selectedTVI = (TreeViewItem)tr1.SelectedItem; TreeViewItem selectedTVI2 = (TreeViewItem)selectedTVI.Parent; TreeViewItem selectedTVI3 = (TreeViewItem)selectedTVI2.Parent; obr += selectedTVI3.Header.ToString() + selectedTVI2.Header.ToString() + selectedTVI.Header.ToString(); Пошук tr1.Items.IndexOf("Помідор"); // повертає позицію починаючи з 0 чи -1 Вставити на позицію tr1.Items.Insert(1, "Морква"); // зразу після першого Зробити виділеним tr1.Items.IsSelected = true; Очистити tr1.Items.Clear(); Чи елемент розкритий if (item.IsExpanded == true){} Пробіжатися по дереву рівень перший foreach (TreeViewItem item in tr1.Items) { MessageBox.Show(item.Header.ToString()); } Пробіжатися по дереву рівень другий foreach (TreeViewItem item in treeView1.Items) { foreach (TreeViewItem child in item.Items) { } } Пробіжатися по всім рівням через StringBuilder StringBuilder l_builder = new StringBuilder(); foreach (TreeViewItem l_item in MyTreeView.Items) { ProcessNodes(l_item, l_builder, 0); } MessageBox.Show(l_builder.ToString()); private void ProcessNodes(TreeViewItem node, StringBuilder builder, int level) { builder.Append(new string('\t', level) + node.Header.ToString() + Environment.NewLine); foreach (TreeViewItem l_innerNode in node.Items) { ProcessNodes(l_innerNode, builder, level + 1); } }