2017-04-22 12 views
2

관찰 가능한 컬렉션 속성이있는 클래스가 있으며 PropertyGrid를 사용하여이 속성을 편집합니다. 그 중 일부 항목을 제거하고 OK 단추를 눌러 CollectionChanged 이벤트를 시작하는 내 콜렉션을 시작하지만 Remove Action으로 이벤트를 시작하지 않습니다. 먼저 Reset 액션으로 이벤트를 발생시킨 다음 남아있는 아이템의 Add 액션으로 이벤트를 발생시킵니다.속성 표를 통해 관찰 가능한 컬렉션 편집

컬렉션이 마지막 CollectionChanged 이벤트를 발생시키는 방법은 무엇입니까?

어떻게 제거 된 항목을 가져올 수 있습니까?

+0

잘 이해하면 각 추가 이벤트를 피하기를 원합니다. 이 경우 [이 스레드] (http://stackoverflow.com/questions/9570800/why-does-observablecollection-not-support-bulk-changes)를 확인하고 RangeObservableCollection을 연구하면 매우 잘 작동합니다! – Default

답변

0

글쎄, 나는 이상한 해결책을 가졌지 만 나에게 도움이되었다. 나중에 누군가를 도울 것이다. 그것은 명백하게 악의적 인면을 가지고 있지만, 현재로서는 아무것도 아닌 것보다 더 낫습니다.

CollectionChanged가 실행될 때마다 타이머가 경과하면 로컬 타이머가 시작됩니다 (예 : 500ms 간격). 마지막 컬렉션 변경 이벤트가 이미 트리거되었습니다.

또한 관찰 가능한 컬렉션에 항목의 고유 ID가있는 로컬 복사본이 있으므로 타이머 경과 후 어떤 항목이 컬렉션에서 제거되었는지 확인할 수 있으므로 바인딩 된 데이터를 정리할 수 있습니다.