Gewusst wie: Verbessern der Bildlaufleistung eines Listenfelds
Falls ein ListBox viele Elemente enthält, kann die Reaktion der Benutzeroberfläche langsam sein, wenn der Benutzer den Bildlauf von ListBox durch Bewegen des Mausrads oder Ziehen des Bildlauffelds ausführt. Die Leistung von ListBox wird verbessert, wenn der Benutzer einen Bildlauf durch Festlegen der angefügten VirtualizingStackPanel.VirtualizationMode-Eigenschaft auf Recycling ausführt.
Beispiel
Beschreibung
Im folgenden Beispiel wird ein ListBox erstellt und VirtualizingStackPanel.VirtualizationMode wird auf Recycling festgelegt, um die Leistung während des Bildlaufs zu verbessern.
Code
<StackPanel>
<StackPanel.Resources>
<src:LotsOfItems x:Key="data"/>
</StackPanel.Resources>
<ListBox Height="150" ItemsSource="{StaticResource data}"
VirtualizingStackPanel.VirtualizationMode="Recycling" />
</StackPanel>
Im folgenden Beispiel werden die im vorherigen Beispiel verwendeten Daten veranschaulicht.
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
public class LotsOfItems : ObservableCollection<String>
{
public LotsOfItems()
{
for (int i = 0; i < 1000; ++i)
{
Add("item " + i.ToString());
}
}
}