Frage

Kann mir bitte jemand sagen, wie ich das VirtualizingStackpanel in WPF richtig verwenden kann? Ich habe ein VirtualizingStackPanel in meiner itemsPaneltemplate für meine itemsControl eingestellt und als My ItemShost festgelegt. Wenn ich jedoch einen Hörer für das angehängte Ereignis von CleanUpVirtualizedItem auf meiner Artikelsteuerung registriere, passiert nichts. Ich sehe nicht, dass die Veranstaltung angerufen wird. Ich sehe auch nicht, dass eines der entladenen Ereignisse in den benutzerdefinierten Steuerelementen in meiner Datenvorlage aufgerufen wird, was mir angibt, dass keine tatsächliche Virtualisierung stattfindet. Jede Hilfe wäre sehr geschätzt.

War es hilfreich?

Lösung

Verwenden Sie stattdessen ein Listbox oder eine ListView:

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

Die Listbox wird automatisch die Virtualisierung der Elemente verarbeitet. Wenn Sie das VirtualizingStackPanel direkt erstellen, ist etwas mehr manuelle Arbeit zu erledigen. Das ist weil Die Standardsteuerung für itemsControl verfügt nicht über einen ScrollViewer, der der Schlüssel zur Virtualisierung ist - Mehr Info hier.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top