VS2013, .net4.5, WPF 데스크톱 응용 프로그램을 사용하고 있습니다.Parallel을 사용하여 바인딩 항목을 만들 때 CollectionViewSource.SortDescriptions가 작동하지 않습니다.
XAML :
<CollectionViewSource x:Key="cvs" Source="{Binding ObsPasses, Mode=OneWay}">
<CollectionViewSource.SortDescriptions>
<scm:SortDescription PropertyName="StartDate"/>
</CollectionViewSource.SortDescriptions>
</CollectionViewSource>
CS :
this.ObsPasses = new ObservableCollection<PassViewModel>(
Passes.AsParallel().Select(x => new PassViewModel(x)));
내가 .AsParallel()
을 제거하면 다음 항목이 분류되어, 추가 한 경우, 항목이 질환에 있습니다. 하지만 좀 이상하게 느껴집니다. SortDescription 항목이 백그라운드에서 추가 된 순서에 상관없이 정렬되도록 보장하지 않습니까?
'ObsPasses' 속성이 할당 된 후에는 모든 병렬 작업이 끝났고 남아있는 것은 알 수없는 순서의 ObservableCollection입니다. 'CollectionViewSource' 정렬 기능에 영향을 줄 수있는 방법은 없습니다. 당신이하고있는 뭔가가 있어야합니다. 확인 가능한 _full_ 샘플 코드를 제공해주십시오. –
@NovitchiS 데모 프로젝트를 테스트 한 결과, ** SortDescription이 AsParallel과 상관없이 작동하지 않는 것으로 나타났습니다 **. 그래서 나는 어딘가 틀림에 틀림 없다. 그러나 나는 알아낼 수 없다. [데모] (https://github.com/LeiYangGH/SortParellel) –
그냥 생각 - ViewView.Refresh를 통해 컬렉션이 채워지면 CollectionView를 새로 고치려고 했습니까? –