2009-06-28 112 views
1

在MVVM模式中,我不想在創建模型時考慮視圖。所以我使用存儲在IList中的數據的公共屬性等。 但是,然後我的viewmodel沒有通知模型方面對這些列表所做的更改。 我應該在我的模型中使用ObservableCollections嗎?但這對我來說似乎很奇怪。MVVM模型設計

回答

4

是的,你應該使用ObservableCollections。我不知道這會是什麼奇怪的事情? ObservableCollection所做的全部都是通知任何監聽器的變化。這並不一定是一個用戶界面。

您的視圖模型不應該知道使用它有關實際查看任何東西,但因爲它是一個查看型號,它是確定爲它承擔東西是要使用它,這樣的ObservableCollection是要走的路而且據我所知,還有一些常見的做法。

此外,聽衆確切地知道哪些項目已被添加或刪除,所以當發生更改時不需要更新整個列表=>更好的更新性能。這也是微軟所說的(雖然現在找不到這篇文章)

+0

這就是我想知道的。謝謝 – apparat 2009-06-28 15:27:48

3

這也是爲什麼你看到大多數人在他們的數據模型上實現INotifyPropertyChanged的原因,因爲你希望每次數據時都要通知viewmodel模型更改。