2010-12-18 5 views
2

나는 ObservableCollection<T>의 클래스를 가지고 있습니다.ObservableCollection의 변경된 값을 복원하는 방법은 무엇입니까?

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)); 

이제 컬렉션의 데이터를 수정합니다. 이전 값을 복원해야만하는 시나리오가 있지만 컬렉션을 먼저 지우면 이전 값이 반영됩니다. 예 :

연령은 XamDataGrid을 통해 수집시 35에서 45로 변경되었습니다. 이제 내 목록의 값은 35입니다.

collectionVAR.clear(); 

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

하지만 여기 값은 복원되지 않습니다. 아무도 내게 왜 설명 할 수 있을까?

답변

1

두 개의 컬렉션 (주 컬렉션 및 ObservableCollection) 내에 포함될 수있는 반면 Person 클래스의 사본은 하나만 존재하는 것이 문제입니다.

그래서 컬렉션의 항목을 ObservableCollection으로 추가하면 은 같은 개체를 가리키게됩니다. 그래서 개체를 편집하면 두 컬렉션 모두에서 개체가 변경됩니다.

해결 방법 먼저 Person 개체를 복제 한 다음 ObservableCollection에 복제본을 추가하십시오.

관련 문제