ViewModel跨多个视图共享

时间:2012-08-30 13:57:38

标签: c# .net wpf mvvm

我需要一些关于MVVM模式的帮助。

我创建了一个ViewModel,它公开了要在名为A的视图的列表视图中显示的数据和命令。

此ViewModel也用于名为B的视图中。在此视图中,我只需要公开一些属性而不需要命令,但我必须再创建2个属性。

为View B创建更具体的ViewModel是否更好,即使它涉及同一个对象?

2 个答案:

答案 0 :(得分:7)

我建议使用合成,有两个视图模型,它们都有一个属性,包含一个包含公共属性的视图模型。然后,两个视图模型应该只具有其特定的其他属性和命令。

答案 1 :(得分:0)

很难回答。但我可以告诉你我们为我们的应用做了什么。我们有一个viewmodel,它或多或少是视图独立的,它只是作为我们的业务数据的包装器,并包含几乎所有显示该模型的部分中使用的所有东西。现在对于视图部分,我们有非常具体的视图模型。像ProjectTreeViewModel或SearchResultViewmodel一样,具有相应的Item视图模型。 Item viewmodel不需要再次实现所有逻辑,只需要聚合一般模型视图模型。 为了给出一个更好的类比:

如果您有FileDriveFolder型号。您可以创建FileViewModelDriveViewModelFolderViewModel。但只有一个ExplorerItemViewModel。这只需要提供一个属性来公开底层视图模型。其余的取决于您的数据模板。

相关问题