Windows phone 7 windows phone 7中的逻辑删除策略,如何保存多个页面的状态

Windows phone 7 windows phone 7中的逻辑删除策略,如何保存多个页面的状态,windows-phone-7,tombstoning,Windows Phone 7,Tombstoning,我想知道你在WindowsPhone7WP7应用程序中保存状态的策略是什么。当我说state时,我指的是堆栈中每个页面的模型视图状态 最近,我在上问了一个问题,解决方案奏效了。然而,这种方法似乎只是临时的和/或特定于页面的。代码不保存其前面页面的状态 我的理解是,当应用程序被激活或停用时,您应该分别处理应用程序状态的恢复或备份。App.xaml.cs生成的代码将生成这些方法 private void Application_Activated(object sender, ActivatedEv

我想知道你在WindowsPhone7WP7应用程序中保存状态的策略是什么。当我说state时,我指的是堆栈中每个页面的模型视图状态

最近,我在上问了一个问题,解决方案奏效了。然而,这种方法似乎只是临时的和/或特定于页面的。代码不保存其前面页面的状态

我的理解是,当应用程序被激活或停用时,您应该分别处理应用程序状态的恢复或备份。App.xaml.cs生成的代码将生成这些方法

private void Application_Activated(object sender, ActivatedEventArgs e)
private void Application_Deactivated(object sender, DeactivatedEventArgs e)
当被删除时,我们如何利用这些方法来保存应用程序的完整状态?我还没有在网上找到好的教程


感谢您的帮助。

在实践中,您最好忘记这些方法。您不应该将墓碑记录视为持久化状态,而应该将其视为持久化数据

显然,您不能神奇地删除整个应用程序的状态。一般来说,一个页面的UI状态只会由单个页面知道

您需要做的是找出您希望持久化的UI状态(如果有),然后根据数据的大小将这些状态与数据一起持久化到PhoneApplicationService.State或IsolatedStorage.ApplicationSettings中

对于ViewModels,很容易将其删除。只需添加代码来检查是否存在逻辑删除的实例,然后在创建时加载viewmodel的数据。如果您将所有UI设置绑定到viewmodel,您将非常出色

上一个问题中的代码可以在ViewModels构造函数中使用,结果基本相同。要持续保存ViewModel,只需为PropertyChanged附加一个本地处理程序,并在每次调用时保存ViewModel的状态