2012-08-30 68 views
1

我需要一些關於MVVM模式的幫助。ViewModel跨多個視圖共享

我創建的公開數據,並在名爲A.

這個視圖模型也是在一個名爲B.在該視圖視圖用於查看顯示在列表視圖命令一個ViewModel,我只需要揭露一些屬性和沒有命令,但我必須創建2個以上的屬性。

即使它涉及同一個對象,爲View B創建更具體的ViewModel會更好嗎?

回答

0

難以回答。但我可以告訴你我們的應用程序。我們有一個viewmodel,它或多或少都是獨立的視圖模型,它只是用作業務數據的包裝,幷包含所有顯示此模型的所有部分中使用的所有東西。現在對於視圖部分,我們有非常具體的視圖模型。像ProjectTreeViewModel或SearchResultViewmodel一樣,兩者都有相應的Item視圖模型。 Item viewmodel不需要再次實現所有的邏輯,只需要將通用模型視圖模型進行聚合。 給一個更好的比喻:

如果你有一個File,DriveFolder模型。您將創建一個FileViewModel,DriveViewModelFolderViewModel。但只有一個ExplorerItemViewModel。這隻需要提供一個屬性來公開底層視圖模型。其餘的取決於你的數據模板。

+0

我或多或少地以同樣的方式工作。所討論的ViewModel封裝了一個業務對象。 感謝您的回答 – Xxbz

7

我會建議組合,有兩個視圖模型,它們都具有包含視圖模型的屬性,該視圖模型包含公共屬性。這兩個視圖模型應該只有其特定的其他屬性和命令。