Pregunta

¿Alguien puede decirme cómo usar correctamente el VirtualizingStackPanel en WPF? Establecí un VirtualizingStackPanel en mis elementos PaneltEmplate para mi itemscontrol, y lo establecí como mi itemshost, pero cuando registro un oyente para el evento CleanUpVirtualizedEtem adjunto en el control de mi elemento, nada sucede. No veo que se llame el evento. Tampoco veo ninguno de los eventos descargados en los controles personalizados en mi plantilla de datos que se llama, lo que me indica que no hay una virtualización real. Cualquier ayuda sería muy apreciada.

¿Fue útil?

Solución

Intente usar un cuadro de lista o listView en su lugar:

<ListBox ItemsSource="{Binding Items}"
    VirtualizingStackPanel.VirtualizationMode="Recycling" 
    VirtualizingStackPanel.CleanUpVirtualizedItem="ItemsControl_CleanUpVirtualizedItem">
</ListBox>

El cuadro de lista manejará automáticamente la virtualización de los elementos: hay un poco más de trabajo manual por hacer si crea VirtualizingStackPanel directamente. Esto es porque El control de control predeterminado para itemScontrol no tiene un scrollviewer, que es la clave para la virtualización - más información aquí.

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