VirtualizationMode Výčet

Definice

Určuje metodu, která VirtualizingStackPanel používá ke správě virtualizace podřízených položek.

public enum class VirtualizationMode
public enum VirtualizationMode
type VirtualizationMode = 
Public Enum VirtualizationMode
Dědičnost
VirtualizationMode

Pole

Name Hodnota Description
Standard 0

Vytvořte a zahoďte kontejnery položek.

Recycling 1

Znovu použijte kontejnery položek.

Příklady

Následující příklad vytvoří ListBox a nastaví připojenou VirtualizationMode vlastnost na Recyklace.

<StackPanel>

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

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

</StackPanel>

Následující příklad ukazuje data použitá v předchozím příkladu.

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

Poznámky

Ve výchozím nastavení VirtualizingStackPanel vytvoří kontejner položek pro každou viditelnou položku a zahodí ji, když už ji nepotřebujete (například když se položka posune mimo zobrazení). ItemsControl Pokud obsahuje mnoho položek, může proces vytváření a zahození kontejnerů položek negativně ovlivnit výkon. Pokud VirtualizationMode je nastavená možnost Recyklace, znovu použije kontejnery položek místo toho, VirtualizingStackPanel aby pokaždé vytvářely nové.

Pokud VirtualizingStackPanel kontejnery položek nelze recyklovat, používá standardní režim virtualizace, který slouží k vytváření a zahození kontejnerů položek pro každou položku. Následující seznam popisuje případy, kdy VirtualizingStackPanel nelze kontejnery položek recyklovat:

  • Obsahuje ItemsControl kontejnery položek různých typů. Například může obsahovat položky, Menu které jako kontejnery položek používají obojí MenuItem i Separator objekty.

  • Kontejnery položek pro objekt .ItemsControl

Platí pro

Viz také