5

私は非常に大きく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 分かかります。少なくとも「処理..」アニメーションを表示して、ユーザーがそれを克服できるようにするために、非同期フィルタリングを実装する方法はありますか?

4

1 に答える 1