从TreeView中删除SelectedItem

Gab*_*iel 6 c# wpf treeview null selecteditem

有没有一种简单的方法将TreeView的SelectedItem设置为null或等效?另外,我需要在C#中执行此操作,而不是在XAML中执行此操作.

最好的祝福,

加布里埃尔

Mar*_*nov 8

当您使用TreeViewItem显式构建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;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)


Kar*_*arl 7

不明白你的意思

如果要删除该项,请使用以下命令:

treeView1.Items.Remove(treeView1.SelectedItem);
Run Code Online (Sandbox Code Playgroud)

如果要从树视图中删除选择,请使用以下命令:

((TreeViewItem)treeView1.SelectedItem).IsSelected = false;
Run Code Online (Sandbox Code Playgroud)

  • 如果TreeView是数据绑定的,您会怎么做? (2认同)