私は非常に多くのデータ(10000〜100000)行のリストビューを含むwpfアプリケーションで作業しています。ユーザーはこのリストビューにあらゆる種類のフィルターを適用することができます。フィルターロジックはかなり高度な(そして遅い)ものになります。大きなデータセットを持つWPFのICollectionView.filter
ICollectionView view = CollectionViewSource.GetDefaultView(hugeList.ItemsSource);
view.Filter = new Predicate<object>(FilterCallback);
private bool FilterCallback(object item)
{
//Filter logic
}
をしかし、これは、アプリケーション全体をUIスレッドで実行され、ブロック時に非常に悪いユーザー体験を提供するフィルタリング:今のところ、私のコードの関連部分はこのようになります。ですから、私の質問はすべてです:wpfでリストビューをフィルタリングするための「より良い」方法を知っている人や、基礎となるObservableCollection
をフィルタする必要がありますか?
+1いい質問です!あなたはどのような解決策を打ち出しましたか? – gehho
パフォーマンス上の問題は、グリッドバインディング/レンダリング側のもので、実際のフィルタロジックには関連しない可能性があります。 – Schneider