Addition auf eine post von 4 Monaten, die leider keine Antwort erhalten.DataGrid-Anfragen, wenn Shift Multiselection mit Datenvirtualisierung
Ich stehe grundsätzlich vor dem gleichen Problem bei der Verwendung von Multiselection in einem Datagrid mit Shift.
Wenn irgendwo in der Mitte einer riesigen Liste (sagen wir es 1.000.000 Elemente im Raster, alle Daten virtualisiert) und ich von 500.000 bis 500.050 mit Shift + Mausklick auswählen, ruft das Raster die "GetEnumerator() "Methode meiner virtuellen Liste (ähnliche Implementierung zu Vincents und Pauls). Was ich bis jetzt gemacht habe, war nur ein SelectMany auf den zwischengespeicherten Seiten. Leider wurden die Zeilen nicht richtig ausgewählt (während Strg + Mausklick den Job erledigt!).
Also was ich gefunden habe, ist, dass das DataGrid tatsächlich alle Elemente von Index 0 bis zum letzten der Auswahl erwartet. Dies ist offensichtlich nicht ideal für eine Liste von 1m Elementen, da dies zu Anfragen für jedes Element von 0 bis (in meinem Beispiel) 500.050 führen würde und somit alles aus der Datenbank laden würde.
So wären meine Fragen die gleichen wie die von Daniel in th oben gepostet elinked:
Warum funktioniert die Datagrid Anforderungspositionen mehrfach (ausgewählte Positionen werden gebeten ~ 6-7 Mal in Folge kein ersichtlicher Grund)?
Gibt es eine Möglichkeit, dem DataGrid mitzuteilen, den Enumerator nicht zu verwenden und nur die ausgewählten Elemente auszuwählen und nicht von 0 an zu durchlaufen?
Vielen Dank, in der Hoffnung ich mehr Glück habe zumindest immer Antworten zum Nachdenken anregend, da gibt es nicht viel zu über Datenvirtualisierung gefunden.