我從一個基於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 :) –