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

Определение

Задает метод, используемый VirtualizingStackPanel для управления виртуализацией дочерних элементов.Specifies the method the VirtualizingStackPanel uses to manage virtualizing its child items.

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

Поля

Recycling 1

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

Standard 0

Создание и удаление контейнеров элементов.Create and discard the item containers.

Примеры

В следующем примере создается ListBox и VirtualizationMode задается присоединяемое свойство для повторного запуска.The following example creates a ListBox and sets the VirtualizationMode attached property to Recycling.

<StackPanel>

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

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

</StackPanel>

В следующем примере показаны данные, используемые в предыдущем примере.The following example shows the data used in the previous example.

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 компонент создает контейнер элементов для каждого видимого элемента и удаляет его, когда он больше не нужен (например, когда элемент прокручивается из представления).By default, a VirtualizingStackPanel creates an item container for each visible item and discards it when it is no longer needed (such as when the item is scrolled out of view). Если объект ItemsControl содержит много элементов, процесс создания и отмены контейнеров элементов может негативно сказаться на производительности.When an ItemsControl contains a many items, the process of creating and discarding item containers can negatively affect performance. Если VirtualizationMode для параметра задано значение " VirtualizingStackPanel перезапуск", контейнеры элементов повторно используются вместо создания каждого из них каждый раз.When VirtualizationMode is set to Recycling, the VirtualizingStackPanel reuses item containers instead of creating a new one each time.

Если VirtualizingStackPanel не может перезапускать контейнеры элементов, используется стандартный режим виртуализации, который предназначен для создания и удаления контейнеров элементов для каждого элемента.When VirtualizingStackPanel cannot recycle item containers, it uses the standard mode of virtualization, which is to create and discard item containers for each item. В следующем списке описываются случаи, VirtualizingStackPanel когда не удается перезапустить контейнеры элементов.The following list describes cases when the VirtualizingStackPanel cannot recycle item containers:

  • ItemsControl Содержит контейнеры элементов различных типов.The ItemsControl contains item containers of different types. Например, элемент Menu может иметь элементы, MenuItem использующие и объекты, Separator и в качестве контейнеров элементов.For example, a Menu might have items that use both MenuItem and Separator objects as the item containers.

  • Вы явно создаете контейнеры элементов для ItemsControl.You explicitly create the item containers for the ItemsControl.

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

Дополнительно