1

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

最近,我问了一个问题,WP7 中的墓碑问题,无法判断我是否需要恢复或实例化/查询新数据,并且解决方案有效。但是,这种方法似乎只是临时和/或特定于页面的。该代码不会保存它之前页面的状态。

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

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

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

任何帮助表示赞赏。

4

1 回答 1

0

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

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

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

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

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

于 2011-07-26T13:48:21.280 回答