VirtualizationMode Sabit listesi

Tanım

VirtualizingStackPanel alt öğelerini sanallaştırmayı yönetmek için kullandığı yöntemi belirtir.

public enum class VirtualizationMode
public enum VirtualizationMode
type VirtualizationMode = 
Public Enum VirtualizationMode
Devralma
VirtualizationMode

Alanlar

Name Değer Description
Standard 0

Öğe kapsayıcılarını oluşturun ve atın.

Recycling 1

Öğe kapsayıcılarını yeniden kullanın.

Örnekler

Aşağıdaki örnek bir ListBox oluşturur ve ekli özelliği Geri Dönüşüm olarak ayarlar VirtualizationMode .

<StackPanel>

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

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

</StackPanel>

Aşağıdaki örnekte, önceki örnekte kullanılan veriler gösterilmektedir.

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

Açıklamalar

Varsayılan olarak, görünür VirtualizingStackPanel her öğe için bir öğe kapsayıcısı oluşturur ve artık gerekli olmadığında (örneğin, öğe görüntüden kaydırıldığında) atar. bir ItemsControl çok öğe içerdiğinde, öğe kapsayıcıları oluşturma ve atma işlemi performansı olumsuz etkileyebilir. VirtualizationMode Geri Dönüşüm olarak ayarlandığında, VirtualizingStackPanel öğe kapsayıcıları her seferinde yeni bir tane oluşturmak yerine yeniden kullanılır.

Öğe kapsayıcılarını geri dönüştüremediğinde VirtualizingStackPanel , her öğe için öğe kapsayıcıları oluşturmak ve atmak için standart sanallaştırma modunu kullanır. Aşağıdaki listede, öğe kapsayıcılarının geri dönüştürülemediği durumlar VirtualizingStackPanel açıklanmaktadır:

  • , ItemsControl farklı türlerdeki öğe kapsayıcılarını içerir. Örneğin, öğe Menu kapsayıcıları olarak hem hem de MenuItemSeparator nesneleri kullanan öğeler olabilir.

  • için ItemsControlöğe kapsayıcılarını açıkça oluşturursunuz.

Şunlara uygulanır

Ayrıca bkz.