2012-07-05 4 views
0

WPF를 사용하는 데 전혀 익숙하지 않아서 ListCollection View Model의 개체 중 하나가 변경되어 응용 프로그램이 매우 비효율적으로 변경 될 때마다 (예 : ListCollectionView.Refresh()) ListCollectionView.Refresh() (ListCollectionView은 List Collection View Model). Refresh()을 제거한 후에는 응용 프로그램이 훨씬 원활하게 실행되고 ListCollection View Model에서 변경 사항이 발생할 때도 업데이트됩니다. 주변을 살펴본 후 CollectionView에 필터 또는 재 정렬이있을 때마다 Refresh()에 대한 암묵적인 호출이있는 것으로 보입니다. 따라서 언제 Refresh()이 필요하며 CollectionView을 다시 만드시겠습니까?일반적으로 CollectionView.Refresh()는 언제 필요합니까?

답변

2

정확하게 이해하면 사용자의 클래스 인 ListCollectionViewModel에 바인딩 된 ListCollectionView이 있습니다. ListCollectionViewModel이 INotifyCollectionChanged을 올바르게 구현하는 경우 (예 : ObservableCollection < T>에서 상속) 컬렉션의 항목이 INotifyPropertyChange을 올바르게 구현하면 Refresh()를 호출 할 필요가 없습니다.

0

CollectionView는 둘 이상의 항목이 변경되는 경우 예외가 발생하는 CollectionChanged 이벤트를 처리하지 않습니다. Refresh()을 대신 사용할 수 있습니다. 따라서 필터 및 정렬이 포함 된 호출이 표시됩니다.

관련 문제