Ich habe eine DataGrid
mit VirtualizationMode="Recycling"
, die an eine ObservableCollection
in meinem ViewModel gebunden ist. Es funktioniert gut - Scrollen und Seiten hoch/runter ist schnell.Virtualisierung: Gibt es eine Möglichkeit, generierte Container auch aus verschachtelten ItemsControl zu recyceln?
Jetzt füge ich noch einen DataGridTemplateColumn
mit einem ItemsControl
in seinem DataTemplate
hinzu. Es ist an etwa 15 Elemente gebunden (für alle Zeilen die gleiche Anzahl). Jetzt ist das Scrollen viel langsamer. Aber wenn die zugrunde liegende Collection Null ist, ist alles wieder schnell. Ich nehme an, dass die generierten ItemContainer in jeder Zeile nicht wiederverwendet werden.
Gibt es eine Möglichkeit, den gesamten Prozess zu beschleunigen oder noch besser alle verschachtelten Steuerelemente in der Reihe zu recyceln?
PS: Ich würde ein ItemsControl in einer DataGridColumn, nicht eine DataGridColumn für jedes Element in Collection bevorzugen.
Bitte zeigen Sie die Bindung für Ihre ItemsControl – Paparazzi
Ein Hack aber offen legen Sie eine Text-Eigenschaft, die Elemente in MyObservableCollection zu einer Zeichenfolge verkettet. – Paparazzi
kann ich nicht, weil ich separate Bearbeitung, Tab-Navigation, Kontextmenü, alternative Detailansicht statt TextBox und so weiter wollen ... – LPL