TreeView绑定添加的节点不能及时显示出来?

Joetao 2010-10-28 12:08:14
我开始用的是递归和TreeViewItem实现的TreeView绑定的,通过弹出ChildWindow,输入添加的节点的内容达到给TreeView中添加节点。但是发现节点添加的节点不能及时显现(要刷新浏览器才能显示添加的节点)。(如果在asp.net里,我估计会刷新绑定),在SL我不想这样做,我知道像SL中GridView就可以直接即时显现的。
所以我也想这样做,因为要绑实现 INotifyCollectionChanged 的集合,例如 ObservableCollection<T>。这次我用的是HierarchicalDataTemplate和ObservableCollection<T>实现。但是添加的节点还是无法实现即时的显示。希望大家帮忙解答下!先谢谢了!
...全文
321 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
AdamasTT 2012-12-24
  • 打赏
  • 举报
回复
引用 3 楼 jv9 的回复:
我有个项目和你的解决方案相同,treeview使用HierarchicalDataTemplate绑定数据,使用childwindows修改和添加节点。只要将treeview的datacontext传入到childwindows就可以了,在childwindows修改时,会看到treeview数据同时修改。当然,是需要Twoway模式下。
冷大侠,帮忙看看!http://bbs.csdn.net/topics/390326742
Joetao 2010-11-01
  • 打赏
  • 举报
回复
难道大家用TreeView增删改节点没碰到这样的问题吗?还是我理解有误!!急求解决!!
Joetao 2010-11-01
  • 打赏
  • 举报
回复
sunpire碰到这样的问题没?请求解决!关于TreeView的增删改!!

Joetao 2010-11-01
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 lieri111 的回复:]
楼主你说的没错,只是局部“刷新”就是替换内容,如果显示不出来图片一般是路径问题,或者格式不支持,要是显示不出来数据,那就是你取的问题了,要看你怎样取的
[/Quote]
刷新浏览器就可以显示了,证明取数据时没有问题的。只是数据没有被立即显示,应该是数据源该变了,但给通知UI造成的。怎样让数据源的改变立即反应到了UI?(因为第一次加载的时候绑定了一次,数据源的改变是后来发生的,我不想在把手写代码,把更改后的数据源绑定到UI上,而是想通过ObservableCollection<T>实现通知)
passself 2010-11-01
  • 打赏
  • 举报
回复
楼主你说的没错,只是局部“刷新”就是替换内容,如果显示不出来图片一般是路径问题,或者格式不支持,要是显示不出来数据,那就是你取的问题了,要看你怎样取的
jv9 2010-10-28
  • 打赏
  • 举报
回复
我有个项目和你的解决方案相同,treeview使用HierarchicalDataTemplate绑定数据,使用childwindows修改和添加节点。只要将treeview的datacontext传入到childwindows就可以了,在childwindows修改时,会看到treeview数据同时修改。当然,是需要Twoway模式下。
Joetao 2010-10-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jv9 的回复:]
HierarchicalDataTemplate和正常绑定是相同的,绑定ItemsSource后使用TwoWay,就可以实现,添加后动态在Treeview增加节点。

不过需要注意将Treeview数据集合同时传入到ChildWindows一起操作。
[/Quote]
谢谢!冷大侠!是用的TwoWay方式,但就是添加的节点不能即时显示,看来还得仔细研究下了!
jv9 2010-10-28
  • 打赏
  • 举报
回复
HierarchicalDataTemplate和正常绑定是相同的,绑定ItemsSource后使用TwoWay,就可以实现,添加后动态在Treeview增加节点。

不过需要注意将Treeview数据集合同时传入到ChildWindows一起操作。

Joetao 2010-10-28
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lieri111 的回复:]
楼主是不是没有使用类似的局部更新,添加了内容并不显示
[/Quote]
局部刷新?应该不需要啊,我用DataGrid可以做的增删改查都可以立即显示的。就是在TreeView中不行!!
passself 2010-10-28
  • 打赏
  • 举报
回复
楼主是不是没有使用类似的局部更新,添加了内容并不显示
Joetao 2010-10-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jv9 的回复:]
只要将treeview的datacontext传入到childwindows就可以了,在childwindows修改时,会看到treeview数据同时修改。当然,是需要Twoway模式下。
[/Quote]
我没有传datacontext,我直接对数据库操作的,按照Binding的TwoWay方式,实现了INotifyCollectionChanged 的集合的绑定,当数据源改变了,应该UI是要更新的

8,735

社区成员

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

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