2013-12-14 25 views
0

我从一个基于MVVM的方法开始一个新项目。我将从一些web服务异步加载一些数据。我很困惑在哪里实现这个接口,在一个视图模型中,模型或两者。 另外,如果我在模型上执行INotifyPropertyChanged(姑且称之为MODELA)。然后我创建一个ObservableCollection<ModelA>,会不会是多余的,因为ObservableCollection本身跟踪到列表中的任何数据的变化?什么时候在windows phone项目中实现INotifyPropertyChanged

回答

2

ObservableCollection类只更新UI在以下操作的情况:

  • 项目在集合添加。
  • 项目是从集合中删除。
  • 收集很清楚。

但是,如果在你的情况下,任何property changes in underlying itemModelA,它won't be reflected on UI除非你的模型类实现INotifyPropertyChanged接口和财产变化提高PropertyChanged事件。

因此,作为一个拇指规则,您应该在ViewModel图层和Model图层都实施INPC

+1

感谢您详细的解答:) –

+0

很乐意帮忙拉雅。希望你的查询是resloeved :) –

0

答案很简单。如果你需要你的模型实现INotifyPropertyChanged,那么它应该。冗余与否如果您需要跟踪单个属性,您会更好地使用该事件而不是ObservableCollection。

1

实际上你需要执行INotifyPropertyChanged哪个属性将使用数据绑定显示在UI对象。如果将UI直接绑定到模型的属性上,那么您还需要在模型中实现它。当加入或从集合中删除对象

的ObservableCollection仅通知UI。要在ObservableCollection中的一个或多个对象的属性发生更改时通知UI,您仍然需要在该对象类中实现INotifyPropertyChanged。

相关问题