mvvm中数据更新问题

dotNet源计划 软件工程师  2017-12-12 11:14:09
问题场景如下:

实现INotifyPropertyChanged的情况下。

使用ObservableCollection或者List集合。去绑定ItemsControl。此时修改了集合中的某一个对象的属性,其它不变。

请问数据更新机制中,会通知更新整个集合对象?还是只会更新修改的那一个对象?
...全文
491 7 点赞 打赏 收藏 举报
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
集合里面的对象要实现INotifyPropertyChanged,否则集合对象属性的更新不会反映到界面的。集合是实现INotifyCollectionChanged接口的,集合负责的是集合成员在添加和删除时通知界面进行更新
  • 打赏
  • 举报
回复
所谓“更新整个集合对象?还是只会更新修改的那一个对象”这个问题说法,本身就是因为空洞地用“更新”这个字眼儿而不搞明白机制才产生的混乱问题。 如果你稍微深入一点,就不至于张冠李戴了。
  • 打赏
  • 举报
回复
抠字眼儿是不能理解什么是“一致”的,需要用悟性理解。 #1、#2 楼已经说了,ObservableCollection 负责集合单元的增减,而 INotifyPropertyChanged 才负责单元中的对象的属性改变,这是两个完全不同的(没有直接关系的)功能知识点,根本产生不了纠结。要用心去理解。
  • 打赏
  • 举报
回复
exception92 2017-12-12
只会更新一个数据对象,没必要更新全部。
  • 打赏
  • 举报
回复
圣殿骑士18 2017-12-12
修改了一个对象,它去通知更新整个集合,它傻了吗?微软的天才程序员会采用这么低效的方法吗?用常识判断即可得出的结论。
  • 打赏
  • 举报
回复
dotNet源计划 2017-12-12
引用 1 楼 daixf_csdn 的回复:
修改了一个对象,它去通知更新整个集合,它傻了吗?微软的天才程序员会采用这么低效的方法吗?用常识判断即可得出的结论。
您能拿出一些具体的根据吗?比如说基于它实现了哪些接口基于机制下实现的通知。
  • 打赏
  • 举报
回复
dotNet源计划 2017-12-12
引用 2 楼 duanzi_peng 的回复:
只会更新一个数据对象,没必要更新全部。
版主你好。这是我在msdn上的相同提问。他的回答是,只有增加和删除的提醒。说的和您有些出入。 https://social.msdn.microsoft.com/Forums/zh-CN/bb854b02-088d-40e7-b098-5a4d113988e4/mvvm?forum=wpfzhchs
  • 打赏
  • 举报
回复
相关推荐
发帖
.NET Framework
加入

1.7w+

社区成员

.NET技术 .NET Framework
申请成为版主
帖子事件
创建了帖子
2017-12-12 11:14
社区公告
暂无公告