我正在开发一个wpf应用程序,其中包含一个包含大量数据(10 000到100 000)行的列表视图.用户可以将各种过滤器应用于此列表视图,使过滤器逻辑非常先进(并且速度慢).目前,我的代码的相关部分如下所示:
ICollectionView view = CollectionViewSource.GetDefaultView(hugeList.ItemsSource);
view.Filter = new Predicate<object>(FilterCallback);
private bool FilterCallback(object item)
{
//Filter logic
}
Run Code Online (Sandbox Code Playgroud)
但是这会在UI线程中运行并在过滤时阻止整个应用程序,这会给用户带来非常糟糕的体验.所以我向大家提出的问题是:有没有人知道在wpf中过滤listview的"更好"的方式,还是应该过滤底层代码ObservableCollection?