MvvmCross与墓碑

MvvmCross与墓碑,mvvm,windows-phone,mvvmcross,Mvvm,Windows Phone,Mvvmcross,我正在学习一个基本的MvvmCross(v3.0.3)示例,我有点难以理解如何在应用程序被删除时重新加载状态。目前,我有一个可移植的类库,只有一个视图模型和一个属性。我还有一个WindowsPhone8应用程序,它引用这个PCL,绑定到视图模型,然后将textblock绑定到属性 由于属性的值显示在屏幕上,所以所有操作都很好。我已经在停用时将WP8项目设置为tombstone,当我单击开始按钮时,会调用ViewModel.SaveState方法(没有打开代码,因此这可能不是正确的名称),我可以使

我正在学习一个基本的MvvmCross(v3.0.3)示例,我有点难以理解如何在应用程序被删除时重新加载状态。目前,我有一个可移植的类库,只有一个视图模型和一个属性。我还有一个WindowsPhone8应用程序,它引用这个PCL,绑定到视图模型,然后将textblock绑定到属性

由于属性的值显示在屏幕上,所以所有操作都很好。我已经在停用时将WP8项目设置为tombstone,当我单击开始按钮时,会调用ViewModel.SaveState方法(没有打开代码,因此这可能不是正确的名称),我可以使用属性中的值填充提供的“bundle”

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


有什么我遗漏的吗?“停用时墓碑”选项是否不会导致MvvmCross中出现这种情况?

v3中的墓碑代码是全新的,而且尚未在所有平台上完全完成,尽管我个人在WinRT和Android上对其进行了测试

在WindowsPhone上,我还保留了一个打开的功能-主要是因为我不太知道该放什么进去

您需要实现的功能是在页面中加载和保存状态-请参阅
MvxPhonePage
中的两个空虚拟方法:

将文本序列化/反序列化到
MvxBundle
或从
MvxBundle
进行文本序列化/反序列化的代码非常简单-只需使用
IMvxSavedStateConverter
-请参阅中的Droid代码:


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

嗨,斯图尔特。我注意到MvxPhonePage上的LoadStateBundle方法不提供从SaveStateBundle访问同一IMvxBundle的权限。我是否正确地认为我将自己管理数据的保存/加载,而不依赖IMvxBundle?另外,是否计划在Windows Phone上使用ViewModel.SaveState和ViewModel.ReloadState?德克萨斯州今天有点忙。。。但基本上,需要进行逻辑删除的页面需要实现LoadStateBundle和SaveStateBundle——它们需要确定在何处(在独立存储中?)保存和加载捆绑数据(字符串字典)。在你实现了这一点之后,墓碑应该就可以工作了。再次为昨天没有更完整地回答这个问题而感到抱歉-只是很忙。如果它不起作用。。。让我知道!