Udostępnij za pośrednictwem


VirtualizationMode Wyliczenie

Definicja

Określa metodę VirtualizingStackPanel używaną do zarządzania wirtualizacją elementów podrzędnych.

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

Pola

Recycling 1

Użyj ponownie kontenerów elementów.

Standard 0

Utwórz i odrzuć kontenery elementów.

Przykłady

Poniższy przykład tworzy właściwość i ustawia dołączoną ListBox VirtualizationMode właściwość do recyklingu.

<StackPanel>

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

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

</StackPanel>

W poniższym przykładzie przedstawiono dane używane w poprzednim przykładzie.

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

Uwagi

Domyślnie obiekt VirtualizingStackPanel tworzy kontener elementów dla każdego widocznego elementu i odrzuca go, gdy nie jest już potrzebny (na przykład gdy element jest przewijany z widoku). Jeśli element ItemsControl zawiera wiele elementów, proces tworzenia i odrzucania kontenerów elementów może negatywnie wpłynąć na wydajność. Gdy VirtualizationMode jest ustawiona wartość Recyklingu, VirtualizingStackPanel kontenery elementów ponownie są używane zamiast tworzyć nowe za każdym razem.

Gdy VirtualizingStackPanel nie można odzyskać kontenerów elementów, używa standardowego trybu wirtualizacji, który polega na tworzeniu i odrzucaniu kontenerów elementów dla każdego elementu. Poniższa lista zawiera opis przypadków, w których VirtualizingStackPanel kontenery elementów nie mogą odzyskać:

  • Element ItemsControl zawiera kontenery elementów różnych typów. Na przykład element Menu może zawierać elementy, które używają obiektów i MenuItem Separator jako kontenerów elementów.

  • Jawnie utworzysz kontenery elementów dla elementu ItemsControl.

Dotyczy

Zobacz też