mvvm中数据更新问题

dotNet源计划 2017-12-12 11:14:09
问题场景如下:

实现INotifyPropertyChanged的情况下。

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

请问数据更新机制中,会通知更新整个集合对象?还是只会更新修改的那一个对象?
...全文
578 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiuzaizuotian2014 2017-12-13
  • 打赏
  • 举报
回复
集合里面的对象要实现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

17,741

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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