Silverlight:IsolatedStorageSettings在页面刷新之间保留数据
问题描述:
我使用IsolatedStorageSettings
类来存储一些应用程序数据,这些数据在我的Silverlight导航应用程序的页面刷新后应该保留。 数据存储在页面FirstPage.xaml中,并在SecondPage.xaml中检索。 下面的代码工作得很好,如果我不刷新。但是,如果我在SecondPage.xaml(第二页)上进行刷新,则值将从AppStore返回空。可能是什么原因。Silverlight:IsolatedStorageSettings在页面刷新之间保留数据
public static class AppStore
{
private static IsolatedStorageSettings appSettings = IsolatedStorageSettings.ApplicationSettings;
public static String MyData
{
get
{
if (appSettings.Contains("MyData"))
{
return(appSettings["MyData"].ToString());
}
return String.Empty;
}
set
{
if (!appSettings.Contains("MyData"))
{
appSettings.Add("MyData", string.Empty);
}
appSettings["MyData"] = value;
}
}
}
public partial class FirstPage : Page
{
private string data = "somevalue";
.
.
public FirstPage()
{
AppStore.MyData = data;
}
}
public partial class SecondPage : Page
{
public SecondPage()
{
ContentText.Text = AppStore.MyData;
}
}
答
你不保存在IsolatedStorageSettings文件的修改, 你应该使用这个
IsolatedStorageSettings.ApplicationSettings.Save();
注意,您可以使用IsolatedStorageSettings.ApplicationSettings代替IsolatedStorageSettings的一个新的实例。 也不保存每个修改到您的设置,只需在您的App.Exit()事件处理程序中调用此方法,将数据保存到硬盘是费时的。
实际上,我不需要在不同的应用程序运行之间保存数据,只需要在页面刷新之间进行维护。什么是最好的方式来做到这一点? – devnull 2011-06-13 02:30:23
刷新页面时,应用程序将退出并重新加载,并且托管内存中保存的数据将丢失,您需要将其保存到硬盘中。 – Waleed 2011-06-13 02:33:28