ImageAlbums
은 ICollectionView
유형이고 GlobalCollection.MyImageAlubms
은 ObservableCollection<T>
유형입니다.ICollectionView에서의 필터링 문제
ImageAlbums = CollectionViewSource.GetDefaultView(GlobalCollection.MyImageAlubms);
ImageAlbums.Filter = new Predicate<object>(this.FilterImageAlbumList);
보기에서는 필터링 된 이미지 목록을 표시하기 위해 ImageAlbums를 사용하고 있습니다. 나는 FilterImageAlbumList
방법을 사용하여 목록을 필터링했습니다. 문제는 내가 다른 곳에서 을 사용했다는 것입니다. 그 견해에서 나는 GlobalCollection.MyImageAlubms를 소스로 직접 사용했지만 목록에는 필터링 된 것으로 보여지고있다. 또한 코드를 다음은 필터 방식
private bool FilterImageAlbumList(object item)
{
AlbumModel albumMoel = (AlbumModel)item;
if(LOGIC_OF_FILTERING)
{
return false;
}
return true;
}
GlobalCollection에 영향을주지 않고 단지 ImageAlbums
을 필터링 할 수있는 방법이 있나요에게 나타냅니다, 여기에 필터 방법을 제공하고있다. 참고 - 전 세계 컬렉션을 자세히 복사하지 않겠습니다.
항목은 유형이므로 테스트 할 수 있습니다. 각 클래스에는 유형에 대해 다른 열거 형이 있습니다. – jdweng
'new CollectionViewSource {Source = GlobalCollection.MyImageAlubms} .View;를 사용하여 새 뷰를 생성 할 수 있지만 과거에이 버그를 발견했습니다 (http://stackoverflow.com/questions/37166747/object-reference-not -set-to-an-object-in-presentationframework) 그리고 단지 사본을 생성하는 것을 끝내 었습니다 ... – Joe
@Joe, 당신이 왜이 버그를 발견했는지 당신이 이것을 제안하고있다? – lukai