Xamarin形式的Prism中的状态保持和检索



我们正在考虑将UWP应用程序迁移到Xamarin Forms。我们需要能够在用户离开时保存复杂对象(如订单)的状态,并在用户返回时检索该状态。我们还需要能够从视图模型中取消导航。

我们使用MVVM,所以我的问题是从这个角度提出的,但我们喜欢认为自己是务实的,而不是热衷于这样的事情。

在UWP中,我们使用Template10库来保存OnNavigationFrom事件中的状态。我们在OnNavigationTo事件中检索状态。即使单击"应用程序返回"按钮,也能正常工作。

Xamarin Forms似乎没有内置的事件来处理视图模型的导航。

用于Xamarin Forms的Prism具有OnNavigationTo,但似乎没有OnNavigationFrom。在某些页面上,我们使用OnNavigationFrom来提示用户保存或放弃。可以取消OnNavigationFrom以响应对话框。

它还显示Prism不处理使用应用程序后退按钮或硬件后退按钮的导航。无论导航是如何启动的,我们都需要能够处理视图模型之间的导航。

我花了几个星期的时间研究这些问题,并在Xamarin Forms中测试场景。我想我在无知中错过了什么。我知道基元类型可以持久化到应用程序属性,但如果我们不必自己序列化和反序列化复杂的层次结构对象,那就太好了。

Xamarin Forms世界中是否有一个范式/框架:

  • 处理浏览视图模型的事件
  • 允许取消视图模型中的导航以响应对话框
  • 允许从视图模型导航保存状态
  • 允许在导航到视图模型时检索状态
  • 火灾导航事件,而不管导航是如何启动的

我知道这一个问题有很多问题,但我们不是在寻找单独的解决方案,而是一个范式或框架,它为我们提供了以Xamarin形式解决所有问题的工具,比如T10为UWP所做的。

不确定您为Xamarin.Forms研究Prism花了多长时间,但它提供了您所说的一切。

你应该从这个视频开始。它有点老了,但它会让你开始的。

https://www.youtube.com/watch?v=DYRLcqG2BAY

至于实际持久化数据,则由您决定。棱镜会给你做这件事的钩子。

最新更新