私は非常に大きくObservableCollection<MyItem>
なり、ユーザーフレンドリーなフィルタリングを提供する必要があります。
public static async Task RefilterViewAsync(this ItemsControl @this, Predicate<object> compareLogic)
{
await Task.Run(
() =>
{
var collectionView = CollectionViewSource.GetDefaultView(@this.ItemsSource);
if (collectionView.CanFilter)
{
collectionView.Filter = compareLogic;
}
else throw new InvalidOperationException("Filtering not supported...");
collectionView.Refresh();
});
}
..問題は、上記のコードが何らかの理由で機能しないことです。UI スレッドでのフィタリングには約 1 分かかります。少なくとも「処理..」アニメーションを表示して、ユーザーがそれを克服できるようにするために、非同期フィルタリングを実装する方法はありますか?