Czy istnieje prosty sposób, aby ustawić SelectedItem TreeView na wartość null lub równoważną? Ponadto muszę to zrobić w języku C#, a nie w XAML.Usuń SelectedItem z TreeView
poważaniem,
Gabriel
Czy istnieje prosty sposób, aby ustawić SelectedItem TreeView na wartość null lub równoważną? Ponadto muszę to zrobić w języku C#, a nie w XAML.Usuń SelectedItem z TreeView
poważaniem,
Gabriel
Nie wiem, co masz na myśli
Jeśli chcesz usunąć element, użyj tego:
treeView1.Items.Remove(treeView1.SelectedItem);
Jeśli chcesz usunąć zaznaczenie z widoku drzewa użyj:
((TreeViewItem)treeView1.SelectedItem).IsSelected = false;
Chcesz usunąć zaznaczenie?
Myślę, że chcesz coś takiego:
((TreeViewItem)tv.SelectedItem).IsSelected = false;
Wszystkie wcześniejsze odpowiedzi będą pomocne podczas budowania TreeView jawnie przy użyciu TreeViewItem (y). Jeśli potrzebujesz rozwiązania, aby usunąć zaznaczenie podczas korzystania z ItemsSource, użyj następującego kodu:
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;
}
}
}
Co dokładnie chcesz zrobić? Dlaczego musisz null SelectedItem? –
Myślę, że po prostu chce wyczyścić zaznaczenie, może w zależności od wartości innego pola, że użytkownik musi ponownie wybrać węzeł widoku drzewa, więc Karl dał odpowiedź –