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

怎样选中treeview子节点后通过该节点获取父节点? 方法一: 这是个在做项目中一直困扰我的事情,在网上搜罗了一大堆,但几乎要不就是强转,要不就是使用as等,但经过尝试发现这样并不可取,因...

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

方法一:

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

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

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

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

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

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

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

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


方法二:

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

  • 发表于 2017-11-15 09:42
  • 阅读 ( 699 )
  • 分类:.net

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
不写代码的码农
吾辈萝莉控

软件工程师

2 篇文章

作家榜 »

  1. 威猛的小站长 110 文章
  2. Jonny 65 文章
  3. 江南烟雨 33 文章
  4. - Nightmare 33 文章
  5. doublechina 31 文章
  6. HJ社区-肖峰 29 文章
  7. 伪摄影 20 文章
  8. Alan 14 文章