2013-01-15 50 views
0

我在app.xaml(Public Static List id {get set})中創建了一個屬性 我可以向它添加數據(例如:App.id.Add(user.id))。如何在頁面刷新之間保持屬性的值?

因此,我可以從頁面添加數據並使用它的任何導航頁面(例如:App.id [3])。

初始化的問題是,當頁面刷新的數據返回到App.id [0]

回答

0

另外,您可以在這裏使用Singleton模式,這將確保列表被創建並且只有一個實例存在。

在你App.cs文件寫入以下內容:

private static List<string> _id; 

    public static List<string> id 
    { 
     get 
     { 
      if (_id == null) 
       _id = new List<string>(); 

      return _id; 
     } 

     set 
     { 
      _id = value; 
     } 
    } 
+0

嗨弗雷德裏克Singleton模式真的工作..謝謝你回答 – karthikeyan

+0

App.folderId.Remove(id [0]); mscorlib.ni.dll中發生類型'System.InvalidOperationException'的異常,但未在用戶代碼中處理。當我從持久性屬性中刪除數據時,它給了我這個錯誤,因爲當我刪除其中一個項目時,列表發生了變化。 – karthikeyan

+0

這取決於你如何刪除它,你能顯示更多的代碼,否則我不能幫你? –

0

是的,你可以在app.cs定義的公共屬性可以從應用中的所有頁面到達。

在App.cs

public List<String> id = new List<string>(); 

    // Call this method somewhere so you create some data to use... 
    // eg in your App() contructor 
    public void CreateData() 
    { 
     id.Add("ID1"); 
     id.Add("ID2"); 
     id.Add("ID3"); 
     id.Add("ID4"); 
     id.Add("ID5"); 
    } 

當你需要使用它您可以從例如獲得數據。 OnNavigateTo事件處理程序

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) 
{ 
    // Sets the data context for the page to have a list of strings 
    this.DataContext = ((App)Application.Current).id; 

    // Or you can index to the data directly 
    var a = ((App)Application.Current).id[2]; 
} 
+0

,但我想也叫資源ID的網頁,並從該頁面中添加數據。像mainpage.xaml。並添加數據(id.add(y.userid))問題是從app.cs調用屬性給我錯誤。 – karthikeyan

+0

你可以粘貼給出錯誤的代碼嗎?我不明白爲什麼你不能這樣做。 –

+0

Public static List id {get; set;}它在App.cs中,我在mainpage.xaml.cs中調用它。我無法在頁面中將該ID作爲(App.id.add(user.id))。它給了我這個錯誤(System.NullReferenceException:對象引用沒有設置爲一個對象的實例) – karthikeyan

相關問題