Sto lavorando a un'app wpf che contiene un elenco di righe con un numero elevato di dati (da 10.000 a 100.000). L'utente può applicare tutti i tipi di filtri a questa lista, rendendo la logica del filtro abbastanza avanzata (e lenta). Per il momento, la parte rilevante del mio codice è simile al seguente:ICollectionView.filter di WPF con grandi serie di dati
ICollectionView view = CollectionViewSource.GetDefaultView(hugeList.ItemsSource);
view.Filter = new Predicate<object>(FilterCallback);
private bool FilterCallback(object item)
{
//Filter logic
}
Ma questo viene eseguito nel thread dell'interfaccia utente e blocca l'intera applicazione quando il filtraggio che dà un'esperienza utente molto povera. Quindi la mia domanda a voi tutti è: qualcuno sa un modo "migliore" per filtrare un listview in wpf o dovrei filtrare il sottostante ObservableCollection
?
+1 Buona domanda! Che soluzione hai trovato? – gehho
È possibile che il problema di prestazioni si trovi nella griglia di rilegatura/rendering delle cose e non correlato alla logica effettiva del filtro ... – Schneider