2010-11-24 39 views
0

我知道关于墓碑的东西任何如何保存你的应用程序的状态,但我的问题是关于状态。Windows Phone 7的国家

比方说,我有一个页面有5个按钮。每当我点击一个按钮,该按钮可以是可见的或隐藏的。如何保存当前状态或页面的保存状态?比方说,如果我退出我的应用程序并再次加载5个按钮,应该隐藏一个按钮。

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

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

有没有其他办法?

回答

0

你们是不是要办时,页面/应用程序是正常退出同样的事情,当它的墓碑?默认的预期行为是,在退出后(通过后退按钮)启动应用程序时,应用程序将处于默认状态。当从墓碑状态返回时,应用程序应该(尽量合适)以与页面/应用程序被墓碑化时完全相同的方式显示给用户。
当然你可能有不同的需求,但我想强调标准的行为。

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

有是如何做到这一点的MSDN一个很好的例子:How to: Preserve and Restore Page State for Windows Phone

如果你想在您的应用程序的所有执行保持状态,那么你就需要使用IsolatedStorage的细节存储在持久位置。读取和写入数据的时间和地点取决于您需要持续存储的数据的位置。
如果它处于应用程序级别,则可以使用应用程序级别事件(启动,激活,关闭&取消激活)。如果在页面级别有状态数据,则最好在页面级别执行它(装载/卸载或导航从/到适当)。

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

+0

不是真正退出,但是当用户离开该页面并返回时。当然,该页面的初始值将被加载。如果我使用MSDN的文档,我相信它只会在应用程序运行时存储页面的状态,但如果它退出,它会返回到初始值,我说得对吗? – 2010-11-24 14:10:01

0

System.IO.IsolatedStorage命名空间很适合这种行为,请检查出here 另请参阅此文章,了解如何执行您所要求的操作。

Saving Applications States

+0

嗨,感谢您的回复。如果我使用IsolatedStorage.ApplicationSetting,它会保存我的控件的当前值吗?如可见性 – 2010-11-24 14:13:44