2011-06-12 64 views
2

我使用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; 
    } 
} 

回答

5

你不保存在IsolatedStorageSettings文件的修改, 你应该使用这个

IsolatedStorageSettings.ApplicationSettings.Save(); 

注意,您可以使用IsolatedStorageSettings.ApplicationSettings代替IsolatedStorageSettings的一个新的实例。 也不保存每个修改到您的设置,只需在您的App.Exit()事件处理程序中调用此方法,将数据保存到硬盘是费时的。

+0

实际上,我不需要在不同的应用程序运行之间保存数据,只需要在页面刷新之间进行维护。什么是最好的方式来做到这一点? – devnull 2011-06-13 02:30:23

+0

刷新页面时,应用程序将退出并重新加载,并且托管内存中保存的数据将丢失,您需要将其保存到硬盘中。 – Waleed 2011-06-13 02:33:28