Я бы просто использовал триггер, основанный на IsKeyboardFocusWithin
. Это означает, что в любое время объект в этом DataGridRow
имеет фокус клавиатуры, строка будет подсвечена.
<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>
Альтернативой является обработка ClickEvent
и перемещения вверх по визуальному дереву, чтобы найти DataGridRow, и установив его цвет фона оттуда. Если вы выберете этот маршрут, у меня есть VisualTreeHelpers, который позволит вам легко найти объект в визуальном дереве WPF.
var row = VisualTreeHelpers.FindParent<DataGridRow>(clickedDataGridCell);