Ich habe eine ItemsControl
enthält eine Liste von Daten, die ich virtualisieren möchte, aber VirtualizingStackPanel.IsVirtualizing="True"
scheint nicht mit einer ItemsControl
zu arbeiten.Virtualisierung eines ItemsControl?
Ist das wirklich der Fall oder gibt es eine andere Möglichkeit, dies zu tun, was mir nicht bewusst ist?
Um zu testen, ich den folgenden Codeblock verwendet haben:
<ItemsControl ItemsSource="{Binding Path=AccountViews.Tables[0]}"
VirtualizingStackPanel.IsVirtualizing="True">
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Initialized="TextBlock_Initialized"
Margin="5,50,5,50" Text="{Binding Path=Name}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Wenn ich die ItemsControl
zu einem ListBox
ändern, ich, dass das Initialized
Ereignis nur ein paar Mal läuft (die großen Margen zu sehen sind nur damit ich ein paar Datensätze durchgehen muss), aber als ItemsControl
wird jedes Element initialisiert.
Ich habe versucht, die ItemsControlPanelTemplate
auf VirtualizingStackPanel
zu setzen, aber das scheint nicht zu helfen.
Danke, das ist genau die Art von was ich gesucht habe!Ich war auf der Suche nach einer anderen Art von Auswahlverhalten als eine Listbox und zu der Zeit dachte ich, es wäre am einfachsten, mit einem Element Kontrolle zu tun. – Rachel
ListView funktioniert auch dafür. –
Wenn diese Items Control weiter geschachtelt ist, sollten Sie auch eine Höhe geben. Ansonsten wird der Scrollviewer nicht angezeigt. – buckley