C# WPF – DataGrid – ScrollEvent

Wer viel mit dem DataGrid arbeitet, stößt schon oft an neue Herausforderung.
Nicht alles ist selbstverständlich oder leicht zu handhaben.

Neulich habe ich eine Freitextsuche in ein Programm integriert, was jede einzelne Zelle markiert, die den Suchtext enthält. Beim DataGrid spielt allerdings die Virtualization Eigenschaft eine große Rolle.

Ich hatte für den Test EnableRowVirtualization genutzt.

Mit deaktivierter Virtualisierung vom DataGrid wird das Ganze mit vielen Daten sehr langsam und beschränkt sich auf den sichtbaren Bereich im Grid. Man kann natürlich ein AutoScroll einbauen, was dann zwar automatisch scrollt, allerdings auch nicht die schnellste Lösung ist.

Bei aktiver Virtualisierung hingegen läuft alles schnell, jedoch wird beim Scrollen die Markierung der Zelle verschoben. Plötzlich ist also eine andere Zelle markiert.

Ich habe hier einen Trick angewandt und einfach bei jedem Scrollen die Methode zur Zellenmarkierung aufgerufen. Funktioniert sehr gut. Die Zellen werden alle neu markiert.

Was ist dafür notwendig?

WPF-Code:

C#-Code:

Kommentar verfassen

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.