Comment : améliorer les performances de défilement d'un contrôle ListBox
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 VirtualizingStackPanel.VirtualizationMode la valeur Recycling.
Exemple
Description
L'exemple suivant crée un ListBox et affecte à VirtualizingStackPanel.VirtualizationMode 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
Inherits ObservableCollection(Of String)
Public Sub New()
For i As Integer = 0 To 999
Add("item " & i.ToString())
Next
End Sub
End Class
public class LotsOfItems : ObservableCollection<String>
{
public LotsOfItems()
{
for (int i = 0; i < 1000; ++i)
{
Add("item " + i.ToString());
}
}
}