我使用MVVM作爲表示模型並允許用戶與之交互的WPF客戶端。我一直迴避在實際模型中使用ObservableCollection類(在該模型中選擇IList等通用集合,然後在底層集合發生更改時將該IList轉換爲ViewModel上的實際數據綁定ObservableCollection)。理由是MSDN將該類呈現爲WPF和以UI爲中心的類:我應該在MVVM模型中使用ObservableCollections嗎?
您可以枚舉實現IEnumerable接口的任何集合。但是,要設置動態綁定,以便集合中的插入或刪除操作自動更新UI,集合必須實現INotifyCollectionChanged接口。這個接口暴露了CollectionChanged事件,這是一個在底層集合發生變化時應該引發的事件,應該是 。 WPF提供了 ObservableCollection類,它是實現INotifyCollectionChanged接口的 數據收集的內置實現。
問題:我的區別實際上是否有必要?這是額外的工作和額外的代碼。我明白這個話題可能對於SO來說太模糊和主觀,但也許每個人都有明確的,普遍公認的約定。
很好的回答。這是那些情況下,你不能說絕對沒有,但它是一個非常強烈的「代碼味道」如果我在MVVM模型看到一個ObservableCollection。 –