2013-04-15 88 views
2

我正在通过一个基本的MvvmCross(v3.0.3)示例工作,并且我有点卡住了解如何在应用程序被逻辑删除时重新装入状态。目前,我有一个可移植类库,具有单一视图模型和一个属性。我也有一个引用此PCL的Windows Phone 8应用程序,绑定到视图模型,然后将文本块绑定到属性。MvvmCross和墓碑

所有效果都很好,因为该属性的值显示在屏幕上。我已将WP8项目设置为停用时的逻辑删除,并且当我单击开始按钮ViewModel.SaveState方法(没有打开代码,因此可能不是正确的名称)时,我可以填充提供的“包“与财产的价值。

但是,当我通过按“返回”按钮返回到应用程序时,没有调用相应的ViewModel.ReloadState方法。我期待着调用这个方法,所以我可以加载在SaveState中指定的数据。

有什么我失踪了吗? MvvmCross是否会导致“关闭停用”选项不会导致这种情况发生?

回答

0

v3中的墓碑代码是全新的 - 在所有平台上尚未完全实现 - 尽管我已在WinRT和Android上亲自测试过它。

在WindowsPhone的,我也留下了一个开放式的功能 - 主要是因为我不知道该放什么在它...

,你需要实现的加载和内部状态的保存功能,您页面 - 见MvxPhonePage两种空的虚方法:https://github.com/slodge/MvvmCross/blob/v3/Cirrious/Cirrious.MvvmCross.WindowsPhone/Views/MvxPhonePage.cs#L54

代码用于从MvxBundle串行/解串文字/是很容易 - 只需使用IMvxSavedStateConverter - 看到Droid的代码:https://github.com/slodge/MvvmCross/blob/v3/Cirrious/Cirrious.MvvmCross.Droid/Views/MvxActivityViewExtensions.cs#L59

可能那是这样的我常用的代码,我可以在所有Windows Phone应用程序中使用...

+0

嗨斯图尔特。我注意到MvxPhonePage上的LoadStateBundle方法不提供从SaveStateBundle访问相同的IMvxBundle。我是否认为自己可以管理数据的保存/加载而不依赖于IMvxBundle?此外,计划在Windows Phone上使用ViewModel.SaveState和ViewModel.ReloadState? – MotoSV

+1

德克萨斯州今天很忙...但基本上需要做逻辑删除的页面需要实现LoadStateBundle和SaveStateBundle - 它们需要计算出哪里(在独立存储中?)它们将保存并加载包数据(一个字符串字符串字典)。在实现之后,墓碑*应该*就可以工作。 – Stuart

+0

对不起,昨天没有回答这个问题 - 只是很忙。如果它不起作用,请告诉我! – Stuart