VirtualizationMode Enumeración

Definición

Especifica el método que usa el VirtualizingStackPanel para administrar la virtualización de sus elementos secundarios.

public enum class VirtualizationMode
public enum VirtualizationMode
type VirtualizationMode = 
Public Enum VirtualizationMode
Herencia
VirtualizationMode

Campos

Nombre Valor Description
Standard 0

Cree y descarte los contenedores de elementos.

Recycling 1

Reutilice los contenedores de elementos.

Ejemplos

En el ejemplo siguiente se crea y ListBox se establece la VirtualizationMode propiedad adjunta en Reciclaje.

<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 usados en 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

Comentarios

De forma predeterminada, crea VirtualizingStackPanel un contenedor de elementos para cada elemento visible y lo descarta cuando ya no es necesario (por ejemplo, cuando el elemento se desplaza fuera de la vista). Cuando un ItemsControl contiene muchos elementos, el proceso de creación y descarte de contenedores de elementos puede afectar negativamente al rendimiento. Cuando VirtualizationMode se establece en Reciclaje, reutiliza VirtualizingStackPanel los contenedores de elementos en lugar de crear uno nuevo cada vez.

Cuando VirtualizingStackPanel no se pueden reciclar contenedores de elementos, usa el modo estándar de virtualización, que consiste en crear y descartar contenedores de elementos para cada elemento. En la lista siguiente se describen los casos en los que no VirtualizingStackPanel se pueden reciclar los contenedores de elementos:

  • ItemsControl contiene contenedores de elementos de diferentes tipos. Por ejemplo, un Menu podría tener elementos que usen objetos y MenuItemSeparator como contenedores de elementos.

  • Cree explícitamente los contenedores de elementos para .ItemsControl

Se aplica a

Consulte también