在MvvmCross中从ViewModel传递参数到ViewModel的替代方法

本文关键字:ViewModel 方法 MvvmCross 中从 参数 | 更新日期: 2023-09-27 17:51:04

我们正在准备将一个巨大的windows手机应用移植到Xamarin我们正在使用MvvmCross来帮助我们使用Mvvm。

应用程序非常庞大,其中工作流位于多个页面之间。因此需要在页面之间传递状态/对象。由于这些状态可能很大,因此在导航调用之间序列化它们是没有意义的。

我的问题是:在视图模型之间传递对象的任何经过验证或使用的替代方案是什么?是否有一些会话管理器?

注意:我们从Android开始,所以也许也有一个好的Android解决方案。

提示:我也在程序员上发布了这个问题,不确定什么是更好的平台:https://softwareengineering.stackexchange.com/questions/285219/alternatives-on-passing-parameters-from-viewmodel-to-viewmodel-in-mvvmcross

在MvvmCross中从ViewModel传递参数到ViewModel的替代方法

我使用的两个选项是:

1)持久化状态到SQLite数据库,并传递一个标识符从ViewModel到ViewModel。这很简单,并确保即使在应用程序重启之间状态保持不变。

2)另一个选项是使用缓存服务,这在类似向导的设置中很有用。我只是创建了一个接口,用于按键在缓存中添加和删除条目。我将其视为标准的MvvmCross服务,并使用IoC注入到视图模型中。在流程开始时,创建一个GUID作为您的键,将您的状态添加到缓存中。只需将键传递给下一个视图模型,它就可以从缓存中检索状态。