VirtualizationMode Enumeração
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Especifica o método que VirtualizingStackPanel usa para gerenciar a virtualização de seus itens filho.
public enum class VirtualizationMode
public enum VirtualizationMode
type VirtualizationMode =
Public Enum VirtualizationMode
- Herança
Campos
Recycling | 1 | Reutiliza os contêineres de item. |
Standard | 0 | Criar e descarta os contêineres de item. |
Exemplos
O exemplo a seguir cria um ListBox e define a VirtualizationMode propriedade anexada como Reciclagem.
<StackPanel>
<StackPanel.Resources>
<src:LotsOfItems x:Key="data"/>
</StackPanel.Resources>
<ListBox Height="150" ItemsSource="{StaticResource data}"
VirtualizingStackPanel.VirtualizationMode="Recycling" />
</StackPanel>
O exemplo a seguir mostra os dados usados no exemplo 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
Comentários
Por padrão, um VirtualizingStackPanel item cria um contêiner de item para cada item visível e o descarta quando ele não é mais necessário (como quando o item é rolado para fora do modo de exibição). Quando um ItemsControl contém muitos itens, o processo de criação e descarte de contêineres de itens pode afetar negativamente o desempenho. Quando VirtualizationMode é definido como Reciclagem, o VirtualizingStackPanel item reutiliza contêineres de item em vez de criar um novo cada vez.
Quando VirtualizingStackPanel não é possível reciclar contêineres de itens, ele usa o modo padrão de virtualização, que é criar e descartar contêineres de itens para cada item. A lista a seguir descreve casos em que não VirtualizingStackPanel é possível reciclar contêineres de item:
O ItemsControl item contém contêineres de itens de tipos diferentes. Por exemplo, um Menu pode ter itens que usam objetos e Separator objetos MenuItem como os contêineres de item.
Você cria explicitamente os contêineres de item para o ItemsControl.