VirtualizationMode Výčet
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Určuje metodu, která VirtualizingStackPanel se používá ke správě virtualizace podřízených položek.
public enum class VirtualizationMode
public enum VirtualizationMode
type VirtualizationMode =
Public Enum VirtualizationMode
- Dědičnost
Pole
Recycling | 1 | Znovu použijte kontejnery položek. |
Standard | 0 | Vytvořte a zahoďte kontejnery položek. |
Příklady
Následující příklad vytvoří ListBox a nastaví připojenou VirtualizationMode vlastnost na Recyklace.
<StackPanel>
<StackPanel.Resources>
<src:LotsOfItems x:Key="data"/>
</StackPanel.Resources>
<ListBox Height="150" ItemsSource="{StaticResource data}"
VirtualizingStackPanel.VirtualizationMode="Recycling" />
</StackPanel>
Následující příklad ukazuje data použitá v předchozím příkladu.
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
Poznámky
Ve výchozím nastavení VirtualizingStackPanel vytvoří kontejner položek pro každou viditelnou položku a zahodí ji, když už není potřeba (například když se položka posune mimo zobrazení). ItemsControl Pokud obsahuje mnoho položek, může proces vytváření a zahození kontejnerů položek negativně ovlivnit výkon. Pokud VirtualizationMode je nastavená možnost Recyklace, VirtualizingStackPanel znovu použije kontejnery položek místo vytvoření nového pokaždé.
Pokud VirtualizingStackPanel kontejnery položek nelze recyklovat, používá standardní režim virtualizace, což je vytvoření a zahození kontejnerů položek pro každou položku. Následující seznam popisuje případy, kdy VirtualizingStackPanel nelze kontejnery položek recyklovat:
Obsahuje ItemsControl kontejnery položek různých typů. Může mít například položky, které jako kontejnery položek používají jak objekty, Menu tak MenuItem Separator i objekty.
Kontejnery položek explicitně vytvoříte pro objekt ItemsControl.