ICollectionView.filter do WPF com grandes conjuntos de dados
Estou trabalhando em um aplicativo wpf que contém uma lista de exibição com muitas linhas de dados (10.000 a 100.000). O usuário pode aplicar todos os tipos de filtros a essa exibição de lista, tornando a lógica do filtro bastante avançada (e lenta). Por enquanto, a parte relevante do meu código fica assim:
ICollectionView view = CollectionViewSource.GetDefaultView(hugeList.ItemsSource);
view.Filter = new Predicate<object>(FilterCallback);
private bool FilterCallback(object item)
{
//Filter logic
}
Mas isso é executado no thread da interface do usuário e bloqueia o aplicativo inteiro ao filtrar, o que proporciona uma experiência muito ruim ao usuário. Portanto, minha pergunta a todos é: alguém conhece uma maneira 'melhor' de filtrar uma exibição de lista no wpf ou devo filtrar o @ subjacenObservableCollection
em vez de