簡體   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