VirtualizationMode Enum

Definition

Anger vilken metod som VirtualizingStackPanel används för att hantera virtualisering av underordnade objekt.

public enum class VirtualizationMode
public enum VirtualizationMode
type VirtualizationMode = 
Public Enum VirtualizationMode
Arv
VirtualizationMode

Fält

Name Värde Description
Standard 0

Skapa och ta bort objektcontainrarna.

Recycling 1

Återanvänd objektcontainrarna.

Exempel

I följande exempel skapas en ListBox och den VirtualizationMode anslutna egenskapen anges till Återvinning.

<StackPanel>

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

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

</StackPanel>

I följande exempel visas de data som användes i föregående exempel.

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

Kommentarer

Som standard skapar en VirtualizingStackPanel objektcontainer för varje synligt objekt och tar bort den när den inte längre behövs (till exempel när objektet rullas ur vyn). När en ItemsControl innehåller många objekt kan processen att skapa och ta bort objektcontainrar påverka prestanda negativt. När VirtualizationMode är inställt på Återvinning VirtualizingStackPanel återanvänder objektcontainrar i stället för att skapa en ny varje gång.

När VirtualizingStackPanel det inte går att återanvända objektcontainrar använder den standardläget för virtualisering, vilket är att skapa och ta bort objektcontainrar för varje objekt. I följande lista beskrivs fall där det inte går att VirtualizingStackPanel återanvända objektcontainrar:

  • Innehåller ItemsControl objektcontainrar av olika typer. En kan till exempel Menu ha objekt som använder både MenuItem och Separator objekt som objektcontainrar.

  • Du skapar uttryckligen objektcontainrarna för ItemsControl.

Gäller för

Se även