Freigeben über


So verbessern Sie die Bildlaufleistung einer ListBox

Wenn ein Objekt ListBox viele Elemente enthält, kann die Benutzeroberfläche langsam reagieren, wenn ein Benutzer mit dem Mausrad ListBox scrollt oder den Daumen einer Bildlaufleiste zieht. Sie können die Leistung des ListBox beim Scrollen des Benutzers verbessern, indem Sie die VirtualizingStackPanel.VirtualizationMode angehängte Eigenschaft auf VirtualizationMode.Recycling festlegen.

Beispiel

BESCHREIBUNG

Im folgenden Beispiel wird eine ListBox erstellt, und die angefügte Eigenschaft VirtualizingStackPanel.VirtualizationMode wird auf VirtualizationMode.Recycling festgelegt, um die Leistung beim Scrollen zu verbessern.

Programmcode

<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