Estoy trabajando en una aplicación wpf que contiene una vista de lista con un montón de filas de datos (10 000 a 100 000). El usuario puede aplicar todo tipo de filtros a esta vista de lista, haciendo que la lógica del filtro sea bastante avanzada (y lenta). Por ahora, la parte pertinente de mi código es el siguiente:ICollectionView.filter de WPF con grandes conjuntos de datos
ICollectionView view = CollectionViewSource.GetDefaultView(hugeList.ItemsSource);
view.Filter = new Predicate<object>(FilterCallback);
private bool FilterCallback(object item)
{
//Filter logic
}
Pero esto se ejecuta en el hilo de interfaz de usuario y bloquea toda la aplicación cuando filtración que da al usuario una experiencia muy pobre. Así que mi pregunta para todos ustedes es: ¿alguien sabe una 'mejor' manera de filtrar una vista de lista en wpf o debería filtrar el subyacente ObservableCollection
?
+1 ¡Buena pregunta! ¿Qué solución se te ocurrió? – gehho
Es posible que el problema de rendimiento esté en el aspecto de encuadernación/representación de la cuadrícula y no esté relacionado con la lógica de filtro real ... – Schneider