繁体   English   中英

如何还原ObservableCollection的更改值?

[英]How can I restore the changed value of an ObservableCollection?

我有一个类的ObservableCollection<T>

class person
{
   string name;
   string age;
}

我也有一个List<T> 我从集合中填充的XML标签以及XML列表中获取数据。

listVAR.add (new person(xml.name.value,xml.age.value));
collectionVAR(new person(xml.name.value,xml.age.value));

现在,我修改集合中的数据。 在一个senario中,我必须还原旧值,但是当我添加它们时,首先清除集合,就会反映旧值。 例如:

通过XamDataGrid收集,年龄从35变为45。 现在我的清单的值为35。

collectionVAR.clear();

foreach(people item in listVAR)
{
    collectionVAR.add(item);
}

但是在这里我看到值35没有恢复。 谁能向我解释为什么?

您的问题是仅存在一个Person类的副本,而该副本却可以包含在两个集合中(main集合和ObservableCollection )。

因此,当您将集合中的项目添加到ObservableCollection它们将指向相同的对象。 因此,当您编辑对象时,两个集合中的对象都会更改。

解决方案是先克隆Person对象,然后将克隆添加到ObservableCollection

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM