VirtualizationMode Enumeración
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
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