[英]How can I raise a CollectionChanged event on an ObservableCollection, and pass it the changed items?
[英]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.