当前位置:  开发笔记 > Android > 正文

WPF TreeView清除选择

如何解决《WPFTreeView清除选择》经验,为你挑选了2个好方法。

如何在WPF TreeView中清除TreeView选项?我已经尝试循环TreeNodes并清除IsSelected属性,但这是一个ReadOnly属性.有任何想法吗?

TreeView是使用XML通过绑定XMLDataProvider对象.



1> 小智..:

我遇到了完全相同的问题并编写了以下代码,这些代码可以在任何树视图上工作,只需要对第一个函数进行一行调用.

class TomWrightsUtils
{
    public static void ClearTreeViewSelection(TreeView tv)
    {
        if (tv != null)
            ClearTreeViewItemsControlSelection(tv.Items, tv.ItemContainerGenerator);
    }
    private static void ClearTreeViewItemsControlSelection(ItemCollection ic, ItemContainerGenerator icg)
    {
        if ((ic != null) && (icg != null))
            for (int i = 0; i < ic.Count; i++)
            {
                TreeViewItem tvi = icg.ContainerFromIndex(i) as TreeViewItem;
                if (tvi != null)
                {
                    ClearTreeViewItemsControlSelection(tvi.Items, tvi.ItemContainerGenerator);
                    tvi.IsSelected = false;
                }
            }
    }
}



2> Kent Boogaar..:

不确定TreeNodes是什么意思.

通常IsSelected,您的视图模型上会有一个与视图绑定的对应属性:


    
        
    

因此,您只需遍历视图模型中的数据项并进行设置即可IsSelected = false.

但是,听起来你没有这样的财产.在这种情况下,您需要TreeViewItem为每个数据项获取相应的数据.有关TreeView.ItemContainerGenerator如何执行此操作的信息,请参阅酒店.就像是:

var treeViewItem = _treeView.ItemContainerGenerator.ContainerFromIndex(0) as TreeViewItem;
treeViewItem.IsSelected = false;

推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有