VirtualizationMode Sabit listesi

Tanım

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

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

Alanlar

Recycling 1

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

Standard 0

Öğe kapsayıcılarını oluşturun ve atı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, bir VirtualizingStackPanel öğe kapsayıcısı görünür her öğe için oluşturur ve artık gerekli olmadığında (örneğin, öğe görünüm dışına kaydırıldığında) atar. ItemsControl çok sayıda öğ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 yenisini 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:

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

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

Şunlara uygulanır

Ayrıca bkz.