【问题标题】:MvvmCross: Application wide view model?MvvmCross:应用程序范围的视图模型?
【发布时间】:2013-05-19 04:25:58
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

    对于这种应用程序范围的行为,我认为最好一次考虑一个用例。

    您提供的示例是:

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

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

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

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


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


    如果有帮助:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-21
      • 1970-01-01
      • 2013-10-22
      • 1970-01-01
      相关资源
      最近更新 更多