DockPanel에 중첩 된 DataGrid가 있습니다. DockPanel은 데이터 컨텍스트 역할 :ObservableCollection이 수정되었는지 감지합니다.
DockPanel1.DataContext = GetData();
GetData의() 메소드는 ObservableCollection에를 반환한다.
ObservableCollection은 DataGrid뿐 아니라 DockPanel에 중첩 된 일부 텍스트 상자에서 수정할 수 있습니다. 또한 DataView를 사용하여 컬렉션을 탐색합니다.
컬렉션이 수정되었는지 감지하고 사용자가 데이터를 저장하지 않고 응용 프로그램을 닫으려고 할 때 경고하고 싶습니다.
사용할 수있는 기본 제공 메커니즘 (컬렉션 또는 뷰에서 일종의 "IsDirty"플래그)이 있습니까? 그렇지 않으면 모든 컨트롤을 모니터링하고 수동으로 변경 사항을 감지해야합니다.
감사 콜렉션 자체의 변화를 감지하기 위해 Leszek이
감사합니다. Clemens and Cerebrate. 이것은 새로운 프로젝트에서 사용할 아주 좋은 솔루션입니다. 현재 프로젝트에 대해서는 재 작업없이 사용할 수있는 것 같지 않습니다. 우선, 나는 이미 ObservableCollections를 디스크에 일련 화했다. 내가 그들을 deserlize하고 DirtyCollection으로 캐스팅하려고 할 때 예외가 발생합니다. "잘못된 캐스트". 둘째, 내 DirtyCollection에는 DirtyCollection이어야하는 ObservableCollection이라는 멤버가 있습니다. 다시 말해 컬렉션 컬렉션이 있습니다. 방금 간단한 방법으로 작업을 수행하기를 바랐습니다. – Leszek