Sdílet prostřednictvím


Jak zlepšit výkon posouvání v ListBoxu

Pokud ListBox obsahuje mnoho položek, může být odezva uživatelského rozhraní pomalá, když uživatel posune ListBox pomocí kolečka myši nebo přetažením palce posuvníku. Výkon ListBox můžete zvýšit, když uživatel projíždí, nastavením VirtualizingStackPanel.VirtualizationMode připojené vlastnosti na VirtualizationMode.Recycling.

Příklad

Popis

Následující příklad vytvoří ListBox a nastaví připojenou vlastnost VirtualizingStackPanel.VirtualizationMode na VirtualizationMode.Recycling ke zvýšení výkonu během posouvání.

Kód

<StackPanel>

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

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

</StackPanel>

Následující příklad ukazuje data, která používá předchozí příklad.

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