VirtualizationMode Výčet

Definice

Určuje metodu, která VirtualizingStackPanel se 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

Recycling 1

Znovu použijte kontejnery položek.

Standard 0

Vytvořte a zahoďte 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ž není potřeba (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, VirtualizingStackPanel znovu použije kontejnery položek místo vytvoření nového pokaždé.

Pokud VirtualizingStackPanel kontejnery položek nelze recyklovat, používá standardní režim virtualizace, což je vytvoř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ů. Může mít například položky, které jako kontejnery položek používají jak objekty, Menu tak MenuItem Separator i objekty.

  • Kontejnery položek explicitně vytvoříte pro objekt ItemsControl.

Platí pro

Viz také