Удалить элемент из дерева
Есть ли простой способ установить SelectedItem TreeView равным нулю или эквивалентным? Кроме того, мне нужно сделать это в C#, а не в XAML.
С наилучшими пожеланиями,
Габриэль
3 ответа:
Не уверен, что вы имеете в виду
Если вы хотите удалить элемент, используйте следующее:
treeView1.Items.Remove(treeView1.SelectedItem);
Если вы хотите удалить выделение из treeview, используйте следующее:
((TreeViewItem)treeView1.SelectedItem).IsSelected = false;
Все предыдущие ответы будут полезны при построении TreeView явно с помощью TreeViewItem(S). Если вам нужно решение для очистки выделения при использовании ItemsSource, используйте следующий код:
private static TreeViewItem FindTreeViewSelectedItemContainer(ItemsControl root, object selection) { var item = root.ItemContainerGenerator.ContainerFromItem(selection) as TreeViewItem; if (item == null) { foreach (var subItem in root.Items) { item = FindTreeViewSelectedItemContainer((TreeViewItem)root.ItemContainerGenerator.ContainerFromItem(subItem), selection); if (item != null) { break; } } } return item; } // Example: private void Button_Click(object sender, RoutedEventArgs e) { if (TV.SelectedItem != null) { var container = FindTreeViewSelectedItemContainer(TV, TV.SelectedItem); if (container != null) { container.IsSelected = false; } } }