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

Определение

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

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

Поля

Имя Значение Описание
Standard 0

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

Recycling 1

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

Примеры

Следующий пример создает и задает присоединенное ListBoxVirtualizationMode свойство в значение "Рециркуляция".

<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объекта.

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

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