有没有一种简单的方法将 TreeView 的 SelectedItem 设置为 null 或等效项?此外,我需要在 C# 中完成这个操作而不是在 XAML 中。
最好的问候,
加布里埃尔
最好的问候,
加布里埃尔
当您使用TreeViewItem(s)显式构建TreeView时,所有以前的答案都将有所帮助。如果您需要在使用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;
}
}
}
我不确定你的意思。
如果你想移除该项,请使用以下方法:
treeView1.Items.Remove(treeView1.SelectedItem);
((TreeViewItem)treeView1.SelectedItem).IsSelected = false;
((TreeViewItem)tv.SelectedItem).IsSelected = false;
您想快速删除所有项目吗? 如果是这样,您可以使用
treeView1.Items.Clear();