VirtualizationMode 列挙型

定義

子項目の仮想化を管理するために VirtualizingStackPanel が使用するメソッドを指定します。

public enum class VirtualizationMode
public enum VirtualizationMode
type VirtualizationMode = 
Public Enum VirtualizationMode
継承
VirtualizationMode

フィールド

名前 説明
Standard 0

項目コンテナーを作成して破棄します。

Recycling 1

項目コンテナーを再利用します。

次の例では、 ListBox を作成し、 VirtualizationMode 添付プロパティを [リサイクル] に設定します。

<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の項目コンテナーを明示的に作成します。

適用対象

こちらもご覧ください