Question

Quelqu'un peut-il s'il vous plaît me dire comment utiliser correctement VirtualizingStackPanel dans WPF? J'ai mis un VirtualizingStackPanel dans mon ItemsPanelTemplate pour mon ItemsControl, et le définir comme mon ItemsHost, mais quand j'enregistrer un écouteur pour l'événement attaché CleanUpVirtualizedItem sur mes articles de contrôle, rien ne se passe. Je ne vois pas l'événement s'appelle. Je ne vois aucun des événements Déchargée les contrôles personnalisés dans mon modèle de données se disant, me indiquant qu'il n'y a pas de virtualisation réelle passe. Toute aide serait très apprécié.

Était-ce utile?

La solution

Essayez d'utiliser un ListBox ou ListView à la place:

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

Le ListBox sera automatiquement gérer la virtualisation des éléments - il y a un peu plus de travail manuel à faire si vous créez directement VirtualizingStackPanel. En effet, Le ControlTemplate par défaut pour ItemsControl ne dispose pas d'un ScrollViewer, qui est la clé de la virtualisation - plus d'info ici .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top