Delen via


Hoe de scrolprestaties van een ListBox te verbeteren

Als een ListBox veel items bevat, kan de reactie van de gebruikersinterface traag zijn wanneer een gebruiker de ListBox schuift met behulp van het muiswiel of door de duim van een schuifbalk te slepen. U kunt de prestaties van de ListBox verbeteren wanneer de gebruiker scrolt door de gekoppelde eigenschap VirtualizingStackPanel.VirtualizationMode in te stellen op VirtualizationMode.Recycling.

Voorbeeld

Beschrijving

In het volgende voorbeeld wordt een ListBox gemaakt en wordt de eigenschap VirtualizingStackPanel.VirtualizationMode gekoppeld aan VirtualizationMode.Recycling ingesteld om de prestaties tijdens het schuiven te verbeteren.

Code

<StackPanel>

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

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

</StackPanel>

In het volgende voorbeeld ziet u de gegevens die in het vorige voorbeeld worden gebruikt.

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