我从一个基于MVVM
的方法开始一个新项目。我将从一些web服务异步加载一些数据。我很困惑在哪里实现这个接口,在一个视图模型中,模型或两者。 另外,如果我在模型上执行INotifyPropertyChanged(姑且称之为MODELA)。然后我创建一个ObservableCollection<ModelA>
,会不会是多余的,因为ObservableCollection
本身跟踪到列表中的任何数据的变化?什么时候在windows phone项目中实现INotifyPropertyChanged
0
A
回答
2
ObservableCollection
类只更新UI在以下操作的情况:
- 项目在集合添加。
- 项目是从集合中删除。
- 收集很清楚。
但是,如果在你的情况下,任何property changes in underlying item
即ModelA
,它won't be reflected on UI
除非你的模型类实现INotifyPropertyChanged
接口和财产变化提高PropertyChanged事件。
因此,作为一个拇指规则,您应该在ViewModel
图层和Model
图层都实施INPC
。
0
答案很简单。如果你需要你的模型实现INotifyPropertyChanged,那么它应该。冗余与否如果您需要跟踪单个属性,您会更好地使用该事件而不是ObservableCollection。
1
实际上你需要执行INotifyPropertyChanged哪个属性将使用数据绑定显示在UI对象。如果将UI直接绑定到模型的属性上,那么您还需要在模型中实现它。当加入或从集合中删除对象
的ObservableCollection仅通知UI。要在ObservableCollection中的一个或多个对象的属性发生更改时通知UI,您仍然需要在该对象类中实现INotifyPropertyChanged。
相关问题
- 1. 什么时候需要实现INotifyPropertyChanged?
- 2. 什么时候autoresizingMask实现?
- 3. 实现什么时候队列后台工作项目
- 4. 什么时候/在哪里实现FileSystemWatcher
- 5. 在ObservableCollection上实现INotifyPropertyChanged的目的是什么?
- 6. Windows Phone 8.1集线器部分更新项目(INotifyPropertyChanged)
- 7. 什么时候应该实时使用方法重载项目?
- 8. 在Windows Phone 7中实现的Silverlight版本是什么
- 9. 什么时候合并开源项目?
- 10. 在Windows Phone 7上实现远程桌面连接项目
- 11. 如何实现在Windows Phone
- 12. 什么时候应该保存Windows Phone 7上的设置?
- 13. 什么时候界面生成器项目得到实例化?
- 14. WPF实现INotifyPropertyChanged的
- 15. 什么时候可以在dom中使用listview中的项目?
- 16. Ruby:protect_from_forgery什么时候出现?
- 17. 当INotifyPropertyChanged被实现时,为什么WPF似乎绕过了TypeDescriptionProviderAttribute?
- 18. 如何实现INotifyPropertyChanged
- 19. 什么时候应该在Windows Phone 8应用程序中加载数据?
- 20. 什么时候和为什么没有实现(java.lang.reflect.InvocationTargetException)发生?
- 21. 什么时候我们应该在Python项目中调用logging.basicConfig?
- 22. 什么时候应该在我的asp.net项目中使用wcf?
- 23. 什么时候在iphone项目中调用[UIWebView stopLoading]?
- 24. 实现DependencyObject和INotifyPropertyChanged
- 25. 在windows phone中实现互斥芒果
- 26. 在Windows Phone中增强现实
- 27. INotifyPropertyChanged和一致性 - 什么时候提出PropertyChanged?
- 28. Windows Phone 8 - 在项目中的现有txt文件中读写
- 29. 什么时候一个目录实际归类为在Windows上被“访问”?
- 30. 在ListView中获取项目Windows Phone
感谢您详细的解答:) –
很乐意帮忙拉雅。希望你的查询是resloeved :) –