[英]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.