Ich würde einfach einen Trigger verwenden, der auf IsKeyboardFocusWithin
. Dies bedeutet, dass jedes Mal, wenn ein Objekt in diesem DataGridRow
den Tastaturfokus hat, wird die Zeile hervorgehoben.
<Style TargetType="{x:Type DataGridRow}">
<Setter Property="Background" Value="White" />
<Style.Triggers>
<Trigger Property="IsKeyboardFocusWithin" Value="True">
<Setter Property="Background" Value="Green" />
</Trigger>
</Style.Triggers>
</Style>
Die Alternative ist die Bearbeitung der ClickEvent
und navigieren Sie in der visuellen Struktur nach oben, um die DataGridRow zu finden, und stellen Sie die Hintergrundfarbe von dort aus ein. Wenn Sie diese Route wählen, habe ich einige VisualTreeHelpers die es Ihnen ermöglicht, ein Objekt in der visuellen Baumstruktur von WPF leicht zu finden.
var row = VisualTreeHelpers.FindParent<DataGridRow>(clickedDataGridCell);