Compartir a través de


Cómo: Mejorar el rendimiento de desplazamiento de un ListBox

Si un ListBox contiene muchos elementos, la respuesta de la interfaz de usuario puede ser lenta cuando un usuario desplaza el ListBox usando la rueda del ratón o arrastrando el pulgar de una barra de desplazamiento. Puede mejorar el rendimiento de ListBox cuando el usuario se desplaza estableciendo la VirtualizingStackPanel.VirtualizationMode propiedad VirtualizationMode.Recyclingadjunta en .

Ejemplo

Descripción

En el ejemplo siguiente se crea un ListBox y se establece la propiedad adjunta VirtualizingStackPanel.VirtualizationMode para VirtualizationMode.Recycling mejorar el rendimiento durante el desplazamiento.

Código

<StackPanel>

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

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

</StackPanel>

En el ejemplo siguiente se muestran los datos que usa el ejemplo anterior.

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