MvvmCross:应用程序范围的视图模型?

时间:2013-05-19 04:25:58

标签: mvvm windows-phone windows-store-apps xamarin mvvmcross

到目前为止,我很喜欢MvvmCross,但我是MVVM技术的新手。 MVVM似乎以View和ViewModel为中心并在它们之间导航。但是,应用程序范围的模型项目呢?也许我的应用程序有一个可以影响所有视图和视图模型行为的模式。这看起来像ApplicationModel或ApplicationViewModel。或者只是使用App类本身存储应用程序的东西?这个概念的推荐做法是什么?如果使用App类本身是个好主意,我假设有一种简单的方法可以从任何地方获取对App实例的引用?还没看好。

1 个答案:

答案 0 :(得分:2)

ViewModel是视图的模型 - 这是当前MvvmCross焦点所在的位置。

对于这种应用程序的广泛行为,我认为最好一次将其视为一个用例。

您提供的示例是:

  

也许我的应用程序有一个可以影响所有视图和视图模型行为的模式。

这里没有太多细节,但对于这种类型的事情我可能会:

  • 将此Mode放入Singleton服务
  • 会在ModeChangedMessage更改
  • 时使用信使发送Mode
  • 将使用构造函数注入
  • 将该服务和信使提供给相关的ViewModel
  • ViewModels可以在Messenger上订阅ModeChangedMessage
  • 可能会在我的ViewModels中使用继承来共享它们之间的代码(即它们继承自BaseViewModel类)

当然有其他方法可以做到这一点,但这是一个建议


如果您还想询问其他一些应用程序用例,请提出另一个问题 - 但请提供更多详细信息 - 例如,或许提供一些关于您想要分享的伪代码。我发现真正的用例更容易解决 - 抽象的想法更难以讨论。


如果有帮助: