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