2013-12-14 28 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。

相關問題