Wir haben derzeit eine DataGrid
, die an eine DataTable
gebunden ist. Es hat auch eine Template-Spalte mit einer CheckBox
drin, die wir programmatisch hinzufügen. Dieser Zweck dieser Spalte ist die Verfolgung mehrerer Auswahlen in der DataGrid
.DataGrid Zeile Virtualisierung Anzeige Problem
Eine Factory wird verwendet, um die CheckBox
es für jede Zeile zu erstellen.
Es gibt einige Datensätze, daher wird die Zeilenvirtualisierung auf "true" gesetzt, damit die Leistung akzeptabel ist. Allerdings sehen wir ein seltsames Problem, wo, wenn wir überprüfen, einige CheckBox
es in den ersten 10 Zeilen und dann nach unten scrollen etwa 50 Zeilen (das Raster hat etwa 10 Zeilen zu jeder Zeit sichtbar), gibt es eine Reihe von anderen CheckBox
es das scheint zufällig überprüft zu werden.
Wenn wir die Reihenvirtualisierung deaktivieren, existiert dieses Problem nicht (aber die Leistung ist schrecklich). Gibt es einen Weg dazu? Wer weiß, was wir falsch machen können?
Wenn Sie sagen, die Leistung ist schrecklich nach dem Entfernen der Virtualisierung, ist es schrecklich auf Last oder auf Bildlauf. Wenn es auf Last ist, gibt es eine Lösung, die es nicht schrecklich macht, auf der Rolle ist ein anderes Problem ... –
Es ist nur auf Last. Der gesamte Leistungseinbruch betrifft die Show-Methode des Fensters, das das DataGrid enthält. Bei der Zeilenvirtualisierung werden 200ms mit 2500 Datensätzen im DataGrid angezeigt. Ohne Zeilenvirtualisierung dauert es 28 Sekunden. – WPFNewbie
hinzugefügt ein wenig Code für Sie ... musste nur Leistung bei der Arbeit vor ein paar Tagen zwicken, funktioniert wie ein Charme –