VirtualizationMode Перечисление

Определение

Задает метод, используемый VirtualizingStackPanel для управления виртуализацией дочерних элементов.

public enum class VirtualizationMode
public enum VirtualizationMode
type VirtualizationMode = 
Public Enum VirtualizationMode
Наследование
VirtualizationMode

Поля

Recycling 1

Повторное использование контейнеров элементов.

Standard 0

Создание и удаление контейнеров элементов.

Примеры

В следующем примере создается и задается VirtualizationMode присоединенное ListBox свойство в качестве рециркуляции.

<StackPanel>

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

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

</StackPanel>

В следующем примере показаны данные, используемые в предыдущем примере.

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

Комментарии

По умолчанию VirtualizingStackPanel создается контейнер элементов для каждого видимого элемента и удаляется, когда он больше не нужен (например, если элемент прокручивается вне представления). Если содержит ItemsControl много элементов, процесс создания и отмены контейнеров элементов может негативно повлиять на производительность. Если VirtualizationMode задано значение "Перезапуск", VirtualizingStackPanel контейнеры элементов повторно используются вместо создания нового каждый раз.

Если VirtualizingStackPanel контейнеры элементов не могут быть переработаны, он использует стандартный режим виртуализации, который предназначен для создания и отмены контейнеров элементов для каждого элемента. В следующем списке описаны случаи, VirtualizingStackPanel когда контейнеры элементов не могут быть переработаны.

  • Содержит ItemsControl контейнеры элементов разных типов. Например, Menu элементы, которые используют оба MenuItem элемента и Separator объекты в качестве контейнеров элементов.

  • Вы явным образом создаете контейнеры элементов для ItemsControl.

Применяется к

См. также раздел