Как я могу восстановить измененное значение ObservableCollection? - PullRequest
2 голосов
/ 18 декабря 2010

У меня есть 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));

Теперь я изменяю данные в коллекции.Существует сенарио, в котором мне нужно восстановить старые значения, но когда я добавляю их, сначала очистив коллекцию, отражается старое значение.Например:

возраст изменился с 35 до 45 в коллекции до XamDataGrid.Теперь мой список имеет значение 35.

collectionVAR.clear();

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

, но здесь я вижу, что значение 35 не восстановлено.Может кто-нибудь объяснить мне, почему?

1 Ответ

1 голос
/ 18 декабря 2010

Ваша проблема в том, что существует только одна копия класса Person, хотя она может содержаться в двух коллекциях (основной коллекции и ObservableCollection).

Поэтому, когда вы добавляете элементы из коллекции в ObservableCollection, , они будут указывать на одни и те же объекты. Поэтому, когда вы редактируете объекты, они будут изменены в обеих коллекциях.

Решение состоит в том, чтобы сначала клонировать Person объекты, а затем добавить клон в ObservableCollection.

...