我们正准备将一个巨大的Windows移动应用移植到Xamarin 我们正在使用MvvmCross来帮助我们使用Mvvm。
应用程序非常庞大,工作流程存在于多个页面之间。因此需要在页面之间传递状态/对象。由于这些状态可能很大,因此在导航调用之间将它们序列化是没有意义的。
我的问题是:在视图模型之间传递对象有哪些经过验证或使用的替代方法?有会员经理吗?
注意:我们从Android开始,所以也许还有一个很好的Android解决方案。
提示:我也在程序员身上发布了这个问题,不知道什么是更好的平台:https://softwareengineering.stackexchange.com/questions/285219/alternatives-on-passing-parameters-from-viewmodel-to-viewmodel-in-mvvmcross
答案 0 :(得分:1)
我使用的几个选项是:
1)将状态持久保存到SQLite数据库,并将标识符从ViewModel传递给ViewModel。这很简单,并确保状态在应用程序重新启动之间保持均匀。
2)另一个在类似向导的设置中有用的选项是使用缓存服务。我只是创建了一个接口,用于按键添加和删除缓存中的条目。我将其视为标准的MvvmCross服务,并使用IoC注入我的视图模型。在该过程开始时,创建一个GUID以用作您的密钥,将您的状态添加到缓存中。只需将密钥传递给下一个视图模型,即可从缓存中检索状态。