VirtualizationMode Перечисление
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Задает метод, используемый VirtualizingStackPanel для управления виртуализацией дочерних элементов.
public enum class VirtualizationMode
public enum VirtualizationMode
type VirtualizationMode =
Public Enum 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объекта.