2012-08-30 69 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

我会建议组合,有两个视图模型,它们都具有包含视图模型的属性,该视图模型包含公共属性。这两个视图模型应该只有其特定的其他属性和命令。