Freigeben über


So verbessern Sie die Scrollleistung einer ListBox

Wenn ein ListBox viele Elemente enthält, kann die Reaktion der Benutzeroberfläche langsam sein, wenn ein Benutzer ListBox mit dem Mausrad scrollt oder den Daumen einer Bildlaufleiste zieht. Sie können die Leistung der ListBox verbessern, wenn der Benutzer scrollt, indem Sie die angefügte eigenschaft VirtualizingStackPanel.VirtualizationMode auf VirtualizationMode.Recyclingfestlegen.

Beispiel

Beschreibung

Im folgenden Beispiel wird ein ListBox erstellt und die angefügte eigenschaft VirtualizingStackPanel.VirtualizationMode auf VirtualizationMode.Recycling festgelegt, um die Leistung während des Bildlaufs zu verbessern.

Code

<StackPanel>

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

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

</StackPanel>

Das folgende Beispiel zeigt die Daten, die im vorherigen Beispiel verwendet werden.

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