Windows Phone 7个州

时间:2010-11-24 13:04:47

标签: c# windows-phone-7 silverlight-4.0

我知道任何如何保存应用程序状态的逻辑删除,但我的问题是关于状态。

假设我有一个有5个按钮的页面。每当我单击按钮时,按钮可以是可见的或隐藏的。如何保存页面的当前状态或保存状态?假设我退出应用程序并再次加载5个按钮,则应隐藏一个按钮。

我尝试在IsolatedStorageFile中保存一个变量状态值,并在加载事件中加载页面时检索它,但我发现处理器为了保存状态而做很多事情太麻烦了。

我想到的另一个解决方案是,当Loaded事件被触发时,我将静态声明一个if else语句并手动声明按钮的可见性。

还有其他办法吗?

2 个答案:

答案 0 :(得分:0)

System.IO.IsolatedStorage命名空间适用于此类行为,请查看here 另请查看这篇文章,了解如何做您要问的问题。

Saving Applications States

答案 1 :(得分:0)

当您正常退出页面/应用并将其标记为逻辑时,您是否尝试执行相同的操作?默认的预期行为是在退出后启动应用程序(通过后退按钮),应用程序将处于默认状态。当从逻辑删除状态返回时,应用程序应该(在适当的时候)以与页面/应用程序被逻辑删除时完全相同的方式显示给用户。 当然,您可能有不同的需求,但我想强调标准行为。

如果要在逻辑删除时存储状态,则约定是使用OnNavigatedFrom和OnNavigatedTo事件在State对象中存储详细信息。

在MSDN上有一个很好的示例:How to: Preserve and Restore Page State for Windows Phone

如果要在应用程序的所有执行中保留状态,则需要使用IsolatedStorage将详细信息存储在持久位置。您在何时何地读取和写入数据将取决于您需要保留的数据所在的位置 如果它处于应用程序级别,您可以使用应用程序级别事件(启动,激活,关闭和取消激活)。如果您在页面级别有状态数据,那么最好在页面级别(加载/卸载或NavigatedFrom / To)中执行此操作。

如果要在应用程序的所有执行中存储状态,您可能需要查看上述两个选项。