从TreeView中删除SelectedItem

问题描述 投票:6回答:4

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

最诚挚的问候,

加百利

c# wpf treeview null selecteditem
4个回答
7
投票

不确定您的意思

如果要删除该项目,请使用此:

treeView1.Items.Remove(treeView1.SelectedItem);

如果要从树形视图中删除选择,请使用此:

((TreeViewItem)treeView1.SelectedItem).IsSelected = false;

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;
        }
    }
}

3
投票

您要取消选择所选内容吗?

我认为您想要这样的东西:

((TreeViewItem)tv.SelectedItem).IsSelected = false;

0
投票

您要快速删除所有项目吗?如果是这样,您可以使用

treeView1.Items.Clear();
© www.soinside.com 2019 - 2024. All rights reserved.