2015-02-23 45 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

相关问题