Wie erfasse ich "Click" -Ereignisse in einem DataGrid-Spaltenüberschriften

8

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?

    
Brett Ryan 05.05.2011, 09:57
quelle

1 Antwort

25

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.

%Vor%

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.

%Vor%     
Jeff Mercado 05.05.2011, 10:51
quelle

Tags und Links