WPF问题 - treeview ContainerFromItem无法获取TreeViewItem
2017-05-06 14:15
483 查看
TreeView中的ContainerFromItem经常用到,这里给出一个场景:
PreviewMouseDown事件判断将要选中的TreeViewItem是否和当前选中项相同,不同时需要执行一断逻辑判断,从而决定是否切换。
![](https://img-blog.csdn.net/20170506140359509?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd3VqaW5nYW5n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
对于第一级,使用ContainerFromItem可以正确获取到相应的TreeViewItem。
![](https://img-blog.csdn.net/20170506140538246?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd3VqaW5nYW5n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
对于第二级,则无法获取到。
![](https://img-blog.csdn.net/20170506140551285?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd3VqaW5nYW5n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
替代的解决方案,使用TreeViewItem的后台绑定数据判断是否为某一特定项,即使用
PreviewMouseDown事件判断将要选中的TreeViewItem是否和当前选中项相同,不同时需要执行一断逻辑判断,从而决定是否切换。
示例
树形控件显示可能多级,如下示例中的树形控件:对于第一级,使用ContainerFromItem可以正确获取到相应的TreeViewItem。
对于第二级,则无法获取到。
解决方案
对于树形控件,每一个TreeViewItem下都有一个ItemsControl,要使用ContainerFromItem获取,只能使用其直接父元素获取,而不能全从根元素获取,StackOverFlow中的说明。替代的解决方案,使用TreeViewItem的后台绑定数据判断是否为某一特定项,即使用
willSelectTreeViewItem.DataContext == st.SelectedItem判断。
相关文章推荐
- 获取treeviewitem对象和TreeViemItem对象的一些问题
- WPF ItemContainerGenerator.ContainerFromItem返回Null
- WPF开发中遇到的问题及解决系列(二):如何获取通过binding生成的ComboBox或者ListBox等的Item
- 【WEBAPI】关于WEBAPI无法获取数据的问题之一(Issues while making a POST to a Web API from JQuery)
- 安卓listview嵌套gridview时,造成listview的item无法获取焦点的问题
- WPF ItemContainerGenerator.ContainerFromItem返回Null
- ListView的item中含edittext时无法获取焦点的问题
- WPF中TreeView控件如何获取选中的TreeViewItem对象?
- 关于TreeView ItemContainerGenerator.ContainerFromIndex 的到的值为null的处理
- WPF根据数据项获取条目控件的方法-ItemContainerGenerator
- PHP getallheaders无法获取自定义头(headers)的问题
- mysql中关于SELECT *,concat(ItemName,ProductID) as ItemName FROM `t_product`的语句最后的ItemName的值的问题解释
- android中onActivityResult方法无法获取返回的resultCode和data问题
- 使用Struts2-tags的include,所带参数无法通过ongl直接获取的问题
- 从nginx获取css无法解析的问题
- android中onActivityResult方法无法获取返回的resultCode和data问题
- 系统宕机后,eclipse 无法启动tomcat -提示问题Removing obsolete files from server
- WPF ItemSource绑定的问题
- Shell32.ShellClass服务器操作系统无法获取 音频文件时长问题
- 在android 6.0动态权限问题无法获取READ_PHONE_STATE权限的SecurityException的问题