我与MvvmCross视图模型试验,并在我的应用程序,他们共享不仅具有类似布局结构不同平台之间,而且在信息呈现不同,这取决于应用程序的尺寸应用之间。例如,iPad应用可能会在同一页面上显示客户列表和选定的客户详细信息,而iPhone应用会在不同的页面之间进行分割。 MvvmCross支持所有这些场景,因此在所有这些应用程序之间共享通用视图模型集非常简单。可以在静态类中的视图模型之间共享公共细节吗?
但是也有情况下,当它的方便要共享多个视图模型相同的细节。例如,不同的视图可能会显示最近的Twitter消息,股票报价更新等。或者一些全局用户设置(用户名,最近的登录时间等)暂时我已经将它们放在从MvxNotifyPropertyChanged继承的单例类AppState中。所有视图模型都具有属性AppState以访问共享应用程序状态,因此任何视图都可以将其控件绑定到AppState。这也适用于设计时模型。
我一对夫妇的平台上的测试(没有尝试非Windows平台还),它按预期工作。但我没有测试终生情景,如墓碑/脱水。基本上我有一些部分在我的视图上绑定到单身人士的属性。是否有任何与视图模型寿命有关的警告?此外,如果使用这样的单例可以接受,我可以使用singleton pattern或MvvmCross依赖注入(MvxResolve)。从技术上讲它会是一样的,那么这两种方法都有哪些优势?
是的,我知道的对测试有影响,但是在这种情况下,我希望我的测试能够验证实际的单例值,所以我将AppState保留在外面嘲弄。在某些特定的移动平台上,我更关心任何与单身生命有关的事情。 感谢您的回答! –