VirtualizationMode Enumeráció

Definíció

Meghatározza a gyermekelemek virtualizálásának kezelésére használt módszert VirtualizingStackPanel .

public enum class VirtualizationMode
public enum VirtualizationMode
type VirtualizationMode = 
Public Enum VirtualizationMode
Öröklődés
VirtualizationMode

Mezők

Name Érték Description
Standard 0

Hozza létre és dobja el az elemtárolókat.

Recycling 1

Használja újra az elemtárolókat.

Példák

Az alábbi példa létrehoz egy ListBox csatolt tulajdonságot, és újrahasznosításra VirtualizationMode állítja be.

<StackPanel>

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

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

</StackPanel>

Az alábbi példa az előző példában használt adatokat mutatja be.

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

Megjegyzések

Alapértelmezés szerint egy VirtualizingStackPanel elemtárolót hoz létre minden látható elemhez, és elveti azt, ha már nincs rá szükség (például amikor az elemet kigörgeti a nézetből). Ha egy elem ItemsControl sok elemet tartalmaz, az elemtárolók létrehozásának és elvetésének folyamata negatívan befolyásolhatja a teljesítményt. Ha VirtualizationMode újrahasznosításra van állítva, az VirtualizingStackPanel elemtárolók újra felhasználhatók ahelyett, hogy minden alkalommal újat hoz létre.

Ha VirtualizingStackPanel nem lehet újrafeldolgozni az elemtárolókat, akkor a virtualizálás szokásos módját használja, azaz elemtárolókat hoz létre és elvet minden elemhez. Az alábbi lista azokat az eseteket ismerteti, amikor a VirtualizingStackPanel nem újrahasznosítható elemtárolók:

  • A ItemsControl különböző típusú elemek tárolói. Előfordulhat például, hogy egy Menu elem tárolóként mindkettőt MenuItem és Separator objektumot is használ.

  • Explicit módon hozza létre az elemtárolókat a ItemsControl.

A következőre érvényes:

Lásd még