2

我正在研究一个基本的 MvvmCross (v3.0.3) 示例,并且在研究如何在应用程序被墓碑化时重新加载状态时遇到了一些困难。目前我有一个带有单一视图模型和一个属性的可移植类库。我还有一个 Windows Phone 8 应用程序,它引用了这个 PCL,绑定到视图模型,然后将一个文本块绑定到属性。

一切都很好,因为属性的值显示在屏幕上。我已将 WP8 项目设置为停用时的墓碑,当我单击开始按钮时,会调用 ViewModel.SaveState 方法(没有打开代码,因此这可能不是正确的名称),我可以填充提供的“捆绑包” " 与属性中的值。

但是,当我通过按“返回”按钮返回应用程序时,不会调用相应的 ViewModel.ReloadState 方法。我期待调用此方法,以便可以加载 SaveState 中指定的数据。

有什么我想念的吗?“停用时的墓碑”选项不会导致这种情况在 MvvmCross 中发生吗?

4

1 回答 1

0

v3 中的墓碑代码是全新的——它还没有在所有平台上完全运行——尽管我已经在 WinRT 和 Android 上亲自测试过它。

在 WindowsPhone 上,我还保留了一项功能 - 主要是因为我不太清楚要在其中添加什么...

您需要实现的功能是在页面中加载和保存状态 - 请参阅以下两个空虚拟方法MvxPhonePagehttps ://github.com/slodge/MvvmCross/blob/v3/Cirrious/Cirrious.MvvmCross.WindowsPhone/Views /MvxPhonePage.cs#L54

序列化/反序列化文本到/从 an 的代码MvxBundle非常简单 - 只需使用IMvxSavedStateConverter- 请参阅 Droid 代码:https ://github.com/slodge/MvvmCross/blob/v3/Cirrious/Cirrious.MvvmCross.Droid/Views/ MvxActivityViewExtensions.cs#L59

可能有一些我可以在所有 Windows Phone 应用程序上使用的通用代码......

于 2013-04-15T20:30:44.717 回答