WPF MVVM模式下 TreeView 如何只展开一个节点。 其余节点关闭。

Pc498471249 2013-05-30 10:41:28
TreeView一共有3级,第一级和第二级都是TextBlock组成, 第三级是一个DataGrid。
如图:


在双击节点的时候,我可以用过TreeView的SelectionChanged事件去操作数据源。把TreeView.SelectItem除外的所有节点的IsExpaned置成false。

但是现在有个问题。 如果点击左边的小三角。 就不会触发任何事件, 无奈只能将TreeViewItem节点的IsExpaned属性与实体属性绑定。。如图


然后在Market对象的IsExpaned属性Changed的时候去改变数据源,如图:


但是在IsExpaned的Set访问器里 访问MarketList集合, 却始终是null.求解。


这是我目前的实现思路。。。。。大神还有没有其他的实现思路。。说出来分享下。。
...全文
383 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sparklingtt 2015-10-23
  • 打赏
  • 举报
回复
楼主,我也遇到同样的问题,怎么给每一级的TreeViewItem注册一个Expanded事件,然后遍历呢,请教
yww_poison 2013-05-30
  • 打赏
  • 举报
回复
楼主贴的代码里没看到你给MarketList集合里的一个元素m设置它的MarketList属性的代码啊。 你不设它怎么知道父集合是什么?
Pc498471249 2013-05-30
  • 打赏
  • 举报
回复
引用 1 楼 xiegeshiwo 的回复:
还好 还好。。。
。。。。。
xiegeshiwo 2013-05-30
  • 打赏
  • 举报
回复
还好 还好。。。
Pc498471249 2013-05-30
  • 打赏
  • 举报
回复
额。。。。解决了。。。。。。。。。。 给每一级的TreeViewItem注册一个Expanded事件。。。在事件里遍历其余TreeViewItem设置IsExpanded就行了。。。。尼玛。。我真是个傻比。。一个小问题纠结一上午。

8,734

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧