首页 文章

在静态类中分享视图模型之间的共同细节是否可以?

提问于
浏览
1

我正在尝试使用MvvmCross视图模型,在我的应用程序中,它们不仅在具有相似布局结构的不同平台之间共享,而且还在应用程序之间共享,其中信息的呈现方式取决于应用程序的外形 . 例如,iPad应用程序可能会在同一页面上显示客户列表和所选客户详细信息,而iPhone应用程序会在不同页面之间拆分它们 . MvvmCross支持所有这些场景,因此在所有这些应用程序之间共享通用视图模型集非常简单 .

然而,有时候在多个视图模型之间共享相同的细节很方便 . 例如,不同的视图可能会显示最近的Twitter消息,股票报价更新等 . 或者某些全局用户设置(用户名,最近的登录时间等) . 目前我已将它们放在从MvxNotifyPropertyChanged继承的单例类AppState中 . 所有视图模型都具有属性AppState来访问共享应用程序状态,因此任何视图都可以将其控件绑定到AppState ..这也适用于设计时模型 .

我已经在几个平台上测试过(没有尝试非Windows平台),它按预期工作 . 但我没有测试终身情景,例如墓碑/脱水 . 基本上我的视图中有一些部分绑定到单例的属性 . 是否有与视图模型生命周期相关的警告?

另外,如果使用这样的单例是可以接受的,我可以使用singleton pattern或MvvmCross依赖注入(MvxResolve) . 从技术上讲它会是一样的,所以这两种方法都有什么优势吗?

1 回答

相关问题