2015-02-23 69 views
0

在我的應用程序中,我將對象(Class1)存儲在兩個列表中(類型爲List<Class1>)。 第一個列表用於存儲應用程序中添加的所有對象,而另一個列表基於過濾功能過濾少數對象。 這兩個列表都是我使用IsolatedStorage.ApplicationSettings存儲在應用程序數據中的類文件(Class2)的一部分。 當我訪問應用程序中的對象時,該對象從列表中提取,並在更改其任何屬性時,單擊「完成」按鈕。當我使用它的模擬器/設備上安裝它之後,但一旦我退出應用程序,並再次打開它,並改變一個對象的屬性列表中的對象在重新打開應用程序時不會刪除

done_event 
{ 
remove the object from the first list; 
remove it from the second list based on a simple condition (#2); 
change its properties; 
add the new object back to the first list; 
run the filtering function to add the new object to the second list if necessary; 
} 

一切工作正常,新的對象被刪除,並添加第一個列表,但是,它不會從第二個列表中刪除(第二個列表填充兩個對象,而不是一個,我使用斷點,並找出對象沒有從步驟#2的第二個列表中刪除)。 我是新手,使用IsolatedStorage,所以不知道缺點。請幫助

回答

0

我不知道如何在重新啓動應用程序後加載兩個列表的對象,但可能ApplicationSettings將兩個列表反序列化爲兩個列表,因此您有兩個不同的對象。

嘗試像像下面的示例中的applicationSettings的代理只保留一個所有存儲的Class1-實例有效的列表:

public List<Class1> Class1List 
{ 
    get 
    { 
     if(this.class1List == null) 
     { 
      if(this.applicationSettings.Contains("class1Key")) 
       this.class1List = (List<Class1>)this.applicationSettings["class1Key"]; 
     } 

     return this.class1List; 
    } 
    set 
    { 
     this.applicationSettings["class1Key"] = value; 
     this.applicationSettings.Save(); 
    } 
} 
+0

感謝。問題出在啓動應用程序時數據加載到列表中的方式(儘管我仍然不知道究竟是什麼錯誤)。但我通過從ApplicationSettings只加載一個列表來修復它,而另一個列表基於過濾函數進行填充。儘管如此,它應該會影響我的表現,但由於我使用的是短名單,所以延遲並不明顯。 – Sukumar 2015-03-07 07:56:44

相關問題