Pregunta

Tengo un ListBox que puede tener muchas filas de registros de base de datos de plantilla, incluyendo un Image, unido a un ObservableCollection<MyItem>. A veces, la colección puede contener miles de elementos.

El rendimiento es grande, pero el desplazamiento es el comportamiento por defecto nervioso. Me gustaría que tuviera el desplazamiento suave, por lo que no es controlada ScrollViewer.CanContentScroll.

Ahora tengo el desplazamiento suave, pero el rendimiento es terrible: los datos se recuperan en un hilo separado, y el hilo termina rápidamente, pero se tarda 10-20 segundos para que los resultados muestran en el ListBox. Asumo que esto se debe desmarcar ScrollViewer.CanContentScroll cambia el VirtualizingStackPanel subyacente a un StackPanel regular y por lo que se está cargando la colección completa antes de mostrar los resultados.

Así que mi pregunta es la siguiente: ¿cómo retener el del desplazamiento suave sin sacrificar el comportamiento y el rendimiento VirtualizingStackPanel

?
¿Fue útil?

Solución

Cuando se desactiva CanContentScroll, que pierde virtualización . Y la respuesta es muy frustrante: Por ahora no hay una solución out-of-the-box:. (

PD: Este no es el primer post aquí, preguntando esta misma pregunta .

Otros consejos

Si utiliza .NET 4.5 (o 4.0 si está dispuesto a cortar un poco), entonces hay una respuesta aquí .

[Tenga en cuenta que el comentario de @ Guilluame estaba aquí mucho antes de esta respuesta, pero no fue particularmente visible cuando descremado en busca de respuestas.]

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top