Comment : améliorer les performances de défilement d'un contrôle ListBox

Mise à jour : Juillet 2008

Si un ListBox contient de nombreux éléments, la réponse de l'interface utilisateur risque d'être lente lorsqu'un utilisateur fait défiler le ListBox à l'aide de la roulette de la souris ou en faisant glisser le curseur d'une barre de défilement. Vous pouvez améliorer les performances de ListBox lorsque l'utilisateur effectue un défilement en affectant à la propriété jointe VirtualizingStackPanelVirtualizationMode() la valeur Recycling.

Exemple

Description

L'exemple suivant crée un Listbox et affecte à VirtualizingStackPanelVirtualizationMode() la valeur Recycling pour améliorer les performances de défilement.

Code

<StackPanel>

  <StackPanel.Resources>
    <src:LotsOfItems x:Key="data"/>
  </StackPanel.Resources>

  <ListBox Height="150" ItemsSource="{StaticResource data}" 
             VirtualizingStackPanel.VirtualizationMode="Recycling" />

</StackPanel>

L'exemple suivant présente les données utilisées dans l'exemple précédent.

public class LotsOfItems : ObservableCollection<String>
{
    public LotsOfItems()
    {
        for (int i = 0; i < 1000; ++i)
        {
            Add("item " + i.ToString());
        }
    }
}

Historique des modifications

Date

Historique

Raison

Juillet 2008

Ajout d'une rubrique pour présenter les nouvelles fonctionnalités de recyclage de conteneurs et de virtualisation de l'interface utilisateur.

Modifications de fonctionnalités dans le SP1.