【问题标题】:tombstoning strategy in windows phone 7, how to save states of multiple pageswindows phone 7中的墓碑策略,如何保存多个页面的状态
【发布时间】:2011-07-26 13:12:34
【问题描述】:

我想知道您在 Windows Phone 7 (wp7) 应用程序中保存状态的策略是什么。当我说状态时,我指的是堆栈中每个页面的模型视图状态。

最近,我在problems with tombstoning in WP7, cannot tell if i need to restore or instantiate/query new data 提出了一个问题,该解决方案有效。但是,这种方法似乎只是临时和/或特定于页面的。该代码不会保存它之前页面的状态。

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

private void Application_Activated(object sender, ActivatedEventArgs e)
private void Application_Deactivated(object sender, DeactivatedEventArgs e)

当应用程序被墓碑化时,我们如何利用这些方法来保存应用程序的完整状态?我还没有在网上找到好的教程。

感谢任何帮助。

【问题讨论】:

    标签: windows-phone-7 tombstoning


    【解决方案1】:

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

    您显然不能神奇地墓碑化整个应用程序的状态。而且一般来说,一个页面的 UI 状态只有单个页面知道。

    您需要做的是弄清楚您希望保留哪些 UI 状态(如果有),然后将这些状态与数据(显然)一起保留在 PhoneApplicationService.State 或 IsolatedStorage.ApplicationSettings 中(取决于数据)。

    对于 ViewModel,对它们进行墓碑化是相当容易的。只需添加代码以检查是否存在墓碑实例,然后在创建时加载视图模型的数据。如果您将所有 UI 设置绑定到您的视图模型,那么您就非常出色了。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-21
      • 2023-03-04
      相关资源
      最近更新 更多