Es scheint, dass das DataGrid
, das mit .NET 4 geliefert wird, kein Ereignis für Spalten- und Zeilenkopf-Klicks enthält. Ich möchte Ereignisse für den Spaltenkopf-Klick erhalten, da ich mein eigenes Sortierverhalten bereitstellen und die Standardsortierung deaktivieren möchte, da mein Ansichtsmodell ein paginiertes Modell ist, das nur 25/50/100 Zeilen gleichzeitig anzeigt Bei der Standardsortierung wird natürlich nur die aktuelle Seite sortiert.
Jetzt könnte ich einen neuen DataGridColumnHeader
Stil erstellen, der ein anklickbares Element enthält und ColumnHeaderStyle
, obwohl das nur wie ein Schmerz erscheint, da ich Probleme haben werde herauszufinden, welche Spalte geklickt wurde etc .
Hat sonst noch jemand auf dieses Problem gestoßen und es gelöst?
Die Header sind nur Schaltflächen. Wie bei jeder anderen Schaltfläche können Sie sich beim Ereignis Click
anmelden, um diese Klicks zu erfassen. Legen Sie einfach einen Stil fest, der auf DataGridColumnHeader
verweist, und fügen Sie einen Click
-Ereignishandler hinzu. Dann haben Sie innerhalb des Handlers direkten Zugriff auf den Header über sender
. Sie könnten dann das Column
mit diesem Header und anderen damit verbundenen Informationen verknüpfen.
Dann im Code:
%Vor% Wenn Sie weiter in DataGrid
schauen, habe ich festgestellt, dass es eine gibt ColumnHeaderStyle
Eigenschaft. Ich denke, es wäre eine bessere Idee, den Stil stattdessen durch diese Eigenschaft anzuwenden.