gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 10:29:07 25 4
gpt4 key购买 nike

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

最佳答案

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

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

您提供的示例是:

Maybe my application has a mode that it can be in that affects all views and viewmodel behavior.



这里没有太多细节,但对于这类事情我可能会:
  • 放置 ModeSingleton 内服务
  • 会使用信使发送ModeChangedMessage s 当Mode已更改
  • 将使用构造函数注入(inject)
  • 向相关 ViewModel 提供该服务和信使
  • 然后 ViewModel 可以订阅 ModeChangedMessage在信使上
  • 可能会在我的 ViewModel 中使用继承来在它们之间共享代码(即它们会从 BaseViewModel 类继承)

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

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

    如果有帮助:
  • http://mvvmcross.wordpress.com 上的 N=2 中有关于服务和构造函数注入(inject)的介绍。
  • http://mvvmcross.wordpress.com 中有关于 N=9 的 Messenger 的介绍
  • 关于MvvmCross:应用程序范围的 View 模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16631420/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com