WPF 选择treeview子节点获取父节点

怎样选中treeview子节点后通过该节点获取父节点?

方法一:

这是个在做项目中一直困扰我的事情,在网上搜罗了一大堆,但几乎要不就是强转,要不就是使用as等,但经过尝试发现这样并不可取,因为每次取到的子节点并不是treeviewitem对象,而是一个绑定到treeview上的实体对象。

这几乎相当于无解,我见过最多的还是在实体类中创建一个父类的实体,然后再进行操作。

但这种情况本身有点诡异,如果说是一个比较复杂的需求,这么搞可能后期维护的时候也是一脸懵逼,到处找索所引用的位置。

后来经过我仔细研究,发现在treeview的itemsource可以反过来,用来获取父节点的绑定实体对象集合。

其实说白了,我想要获取父节点,就是为了对父节点进行操作,父节点本身只是一个数据展示,并没有其他的含义,那么这种情况下我尝试着去先获取treeview的itemsource,得到的是当前对象的对象集合,然后通过遍历这个集合,使用list<T>.contains(T)判断当前选中对象属于哪个集合中,最后将那个匹配成功的对象拿出来,实际上拿出来的就是父节点的对象。

最后需要说明一下,网上所谓的(treeviewitem)treeeview.selecteditem这种转换,本人感觉应该是做Winform的各位dalao,并没有去WPF中进行验证,只是感觉Winform中可以这样做,WPF应该也差不多,所以提了出来。

最后的最后,本人才疏学浅,可能有说错的地方,欢迎各位dalao指正糊脸。

最后的最后的最后,这种方式比较麻烦,可能还比较繁琐,如果不是必要的情况下不建议这么干。

 

方法二:

定义多个全局变量,每次选中一个的时候将选中的赋值给全局变量,然后对那个全局变量进行操作,这种方法经过试验还是有效果的,目前没有找到类似Winform中那种直接获取treeviewitem对象的方法,希望以后会有所收获吧

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值