Я работаю над приложением wpf, которое содержит список с довольно большим количеством данных (от 10 000 до 100 000) строк. Пользователь может применять все виды фильтров к этому списку, что делает логику фильтра довольно продвинутой (и медленной). На данный момент соответствующая часть моего кода выглядит следующим образом:
ICollectionView view = CollectionViewSource.GetDefaultView(hugeList.ItemsSource);
view.Filter = new Predicate<object>(FilterCallback);
private bool FilterCallback(object item)
{
//Filter logic
}
Но это работает в потоке пользовательского интерфейса и блокирует все приложение при фильтрации, что дает очень плохой пользовательский интерфейс. Поэтому мой вопрос для всех вас: кто-нибудь знает "лучший" способ фильтрации списка в wpf или я должен фильтровать базовый ObservableCollection
вместо этого?