2013-04-24 49 views
0

我將類型爲List<string>的對象存儲在獨立存儲中。我的問題是,當我關閉應用程序並稍後重新啓動它,並嘗試檢索List<string>時,它將返回null。當應用程序重新啓動時,將列表<string>存儲到獨立存儲中,並返回null

所有其它對象如stringboolintDictionary<string, bool>等保留它們的值,除了List<string>對象。

public List<string> BuddyGroupsSetting 
    { 
     get 
     { 
      return GetValueOrDefault<List<string>>(BuddyGroupsKeyName, BuddyGroupsDefault); 
     } 
     set 
     { 
      AddOrUpdateValue(BuddyGroupsKeyName, value); 
      Save(); 
     } 
    } 

我檢查了我的代碼,沒有命令可以清除任何地方的列表。我錯過了什麼?

+0

所示的代碼是不是真的打算讓我們來幫助你。 setter允許null,所以有可能代碼將其設置爲null。您沒有向我們展示從存儲器保存/加載列表的代碼。 – 2013-04-24 15:38:34

+1

感謝馬特,發現二傳手從未被稱爲導致未保存的價值。我在下面的答案中解釋。 – PutraKg 2013-04-24 16:56:51

回答

0

好的我想通了。簡單的錯誤..而是直接設置一個值「BuddyGroupsSetting`財產,我錯誤地使用

BuddyGroupsSetting.Add(item) 

所以set從來沒有實際調用添加項目!要糾正此我創建了一個私有字段

private List<string> buddyGroupsSetting = new List<string>(); 

然後使用該字段設置的值

buddyGroupsSetting = BuddyGroupsSetting 
+1

如果您找到解決方案,請將您自己的答案標記爲已接受! – quetzalcoatl 2013-04-26 10:40:06