Domanda

Ho un ListBox che può avere molte righe di record DB su modelli, tra cui un Image, legato ad un ObservableCollection<MyItem>. A volte la raccolta potrebbe contenere migliaia di oggetti.

La performance è grande, ma lo scorrimento è il comportamento di default jumpy. Vorrei che avesse lo scorrimento uniforme, così ho incontrollato ScrollViewer.CanContentScroll.

Ora ho lo scorrimento uniforme, ma la prestazione è orrendo: i dati vengono recuperati in un thread separato, e il filo finisce in fretta, ma ci vogliono 10-20 secondi per i risultati da mostrare nel ListBox. Presumo che questo è perché deselezionando ScrollViewer.CanContentScroll cambia la VirtualizingStackPanel sottostante ad un StackPanel regolare e quindi sta caricando l'intera collezione prima di visualizzare i risultati.

Quindi la mia domanda è questa: come faccio a mantenere il l'scorrimento uniforme, senza sacrificare il comportamento e le prestazioni VirtualizingStackPanel

?
È stato utile?

Soluzione

Quando si deselezionare CanContentScroll, si perdere virtualizzazione . E la risposta è davvero frustrante: Per ora non esiste una soluzione out-of-the-box:. (

PS: Questo non è il primo post qui, chiedendo questa domanda .

Altri suggerimenti

Se si utilizza .NET 4.5 (o 4.0 se siete disposti a incidere un po '), allora c'è una risposta qui .

[Si noti che @ il commento di Guilluame era qui molto prima questa risposta, ma non è stato particolarmente visibile quando scrematura per le risposte.]

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top