System.Windows.Controls Nam ...


.NET Framework Class Library
VirtualizationMode Enumeration

Updated: February 2009

Specifies the method the VirtualizingStackPanel uses to manage virtualizing its child items.

Namespace:  System.Windows.Controls
Assembly:  PresentationFramework (in PresentationFramework.dll)
Syntax

Visual Basic (Declaration)
Public Enumeration VirtualizationMode
Visual Basic (Usage)
Dim instance As VirtualizationMode
C#
public enum VirtualizationMode
Visual C++
public enum class VirtualizationMode
JScript
public enum VirtualizationMode
XAML Attribute Usage
<object property="enumerationMemberName" .../>
Members

Member nameDescription
StandardCreate and discard the item containers.
RecyclingReuse the item containers.
Remarks

By default, a VirtualizingStackPanel creates an item container for each visible item and discards it when it is no longer needed (such as when the item is scrolled out of view). When an ItemsControl contains a many items, the process of creating and discarding item containers can negatively affect performance. When VirtualizationMode()()() is set to Recycling, the VirtualizingStackPanel reuses item containers instead of creating a new one each time.

When VirtualizingStackPanel cannot recycle item containers, it uses the standard mode of virtualization, which is to create and discard item containers for each item. The following list describes cases when the VirtualizingStackPanel cannot recycle item containers:

  • The ItemsControl contains item containers of different types. For example, a Menu might have items that use both MenuItem and Seperator objects as the item containers.

  • You explicitly create the item containers for the ItemsControl. For more information about explicitly versus implicitly creating item containers, see the "Item Container Classes" section in Controls Content Model Overview.

Examples

The following example creates a ListBox and sets the VirtualizationMode()()() attached property to Recycling.

XAML
<StackPanel>

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

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

</StackPanel>

The following example shows the data used in the previous example.

Visual Basic
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
C#
public class LotsOfItems : ObservableCollection<String>
{
    public LotsOfItems()
    {
        for (int i = 0; i < 1000; ++i)
        {
            Add("item " + i.ToString());
        }
    }
}
Platforms

Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Version Information

.NET Framework

Supported in: 3.5 SP1, 3.0 SP2
See Also

Reference

VirtualizingStackPanelVirtualizationMode()()()
Change History

Date

History

Reason

February 2009

Added Visual Basic example.

Customer feedback.

July 2008

Added topic for new enumeration.

SP1 feature change.

Tags :


Page view tracker