Procedura: migliorare le prestazioni di scorrimento di un controllo ListBox

Se un oggetto contiene molti elementi, la risposta dell'interfaccia utente può essere lenta quando un ListBox utente scorre l'oggetto ListBox usando la rotellina del mouse o trascinando il pollice di una barra di scorrimento. È possibile migliorare le prestazioni dell'oggetto ListBox quando l'utente scorre impostando la VirtualizingStackPanel.VirtualizationMode proprietà associata su VirtualizationMode.Recycling.

Esempio

Descrizione

Nell'esempio seguente viene creato un oggetto ListBox e viene impostata la proprietà associata per VirtualizationMode.Recycling migliorare le prestazioni durante lo VirtualizingStackPanel.VirtualizationMode scorrimento.

Codice

<StackPanel>

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

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

</StackPanel>

Nell'esempio seguente vengono illustrati i dati usati dall'esempio precedente.

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