雖然在WPF中實現我的第一個MVVM應用程序,但我一直想知道在View中使用的相關ViewModel集合中包裝Model集合的優缺點。MVVM中的大型模型集合
在我們的系統中,我們可能有幾個潛在的大集合,例如訂單中的訂單行以及可爲訂單行選擇的庫存項目。目前,這些都是從數據訪問層的SQL中查找的,然後SqlDataReaders環繞創建一個模型對象集合。
然後,在創建ViewModel對象集合時循環收集Model對象看起來像是不必要的開銷。當Model對象的集合較大時,最好是直接在View上公開這些對象?
預先感謝您的幫助,馬克
編輯 雖然在這個問題上我發現今年this MSDN article從七月讀了這給出了一個非常平衡的觀點(由約什 - 史密斯沒少綜述) MVVM的,並在「類別」部分對此表示:
與集合的另一個問題是 確定何時或是否包裹每個 模型我在ViewModel實例中收集 的實例。對於 小集合,視圖模型可以 展露新觀察到的收集和 底層 模式集合中的所有內容複製到視圖模型 觀察集合,包裹每 示範項目集合在一個 對應的視圖模型的實例,因爲它 去。 ViewModel可能需要 監聽收集更改事件 以將用戶更改傳回 底層模型。
然而,對於非常大的集合 會以某種形式 虛擬化面板,最簡單,最 務實的態度來暴露只是爲了 公開模型直接對象。
非常感謝您的意見,到目前爲止,試圖限制傳遞到視圖模型的數據量,或使用分頁或其他適當的管制措施,將減少問題,我敢肯定,但我不知道是否會有仍存在是否只需將ViewModel中的Model對象集合綁定就可以了?
是標記還是特德? – 2010-09-28 14:46:12
泰德是我的暱稱查看我的真名模型的馬克! (這個評論是ViewModel?!) – Ted 2010-09-28 14:53:26