Я бы просто использовал триггер на основе 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);