Udostępnij za pośrednictwem


Instrukcje: zwiększanie wydajności przewijania elementu ListBox

Jeśli ListBox zawiera wiele elementów, odpowiedź interfejsu użytkownika może być powolna, gdy użytkownik przewija ListBox za pomocą kółka myszy lub przeciąga suwak paska przewijania. Wydajność ListBox można poprawić, gdy użytkownik przewija się, ustawiając właściwość dołączoną VirtualizingStackPanel.VirtualizationMode na wartość VirtualizationMode.Recycling.

Przykład

Opis

Poniższy przykład tworzy ListBox i ustawia właściwość dołączoną VirtualizingStackPanel.VirtualizationMode na VirtualizationMode.Recycling w celu zwiększenia wydajności podczas przewijania.

Kod

<StackPanel>

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

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

</StackPanel>

W poniższym przykładzie przedstawiono dane używane w poprzednim przykładzie.

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