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 VirtualizingStackPanel para administrar la virtualización de sus elementos secundarios.
public enum class VirtualizationMode
public enum VirtualizationMode
type VirtualizationMode =
Public Enum VirtualizationMode
- Herencia
Campos
Recycling | 1 | Reutilice los contenedores de elementos. |
Standard | 0 | Cree y descarte los contenedores de elementos. |
Ejemplos
En el ejemplo siguiente se crea un ListBox objeto y 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 contiene ItemsControl 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 VirtualizingStackPanel que no se pueden reciclar los contenedores de elementos:
ItemsControl contiene contenedores de elementos de diferentes tipos. Por ejemplo, un Menu elemento podría tener elementos que usan y SeparatorMenuItem objetos como contenedores de elementos.
Puede crear explícitamente los contenedores de elementos para .ItemsControl