У мене була ця проблема, і я майже вирвав волосся, і я не зміг знайти відповідну відповідь в мережі. Я намагався контролювати колір тла вибраного рядка у WPF DataGrid. Це просто не зробить. У моєму випадку причиною було те, що у мене також був CellStyle в моїй сітці даних, і CellStyle перемінив RowStyle, який я встановлював. Цікаво, що CellStyle навіть не встановив колір тла, а замість цього Bing задав властивості RowBackground та AlternateRowBackground. Тим не менш, намагання встановити колір тла для вибраного рядка взагалі не вийшло, коли я це зробив:
<DataGrid ... >
<DataGrid.RowBackground>
...
</DataGrid.RowBackground>
<DataGrid.AlternatingRowBackground>
...
</DataGrid.AlternatingRowBackground>
<DataGrid.RowStyle>
<Style TargetType="{x:Type DataGridRow}">
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="Pink"/>
<Setter Property="Foreground" Value="White"/>
</Trigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
<DataGrid.CellStyle>
<Style TargetType="{x:Type DataGridCell}">
<Setter Property="Foreground" Value="{Binding MyProperty}" />
</Style>
</DataGrid.CellStyle>
і це спрацювало, коли я перемістив потрібний стиль для вибраного рядка зі стилю рядка та у стиль комірки, наприклад:
<DataGrid ... >
<DataGrid.RowBackground>
...
</DataGrid.RowBackground>
<DataGrid.AlternatingRowBackground>
...
</DataGrid.AlternatingRowBackground>
<DataGrid.CellStyle>
<Style TargetType="{x:Type DataGridCell}">
<Setter Property="Foreground" Value="{Binding MyProperty}" />
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="Pink"/>
<Setter Property="Foreground" Value="White"/>
</Trigger>
</Style.Triggers>
</Style>
</DataGrid.CellStyle>
Просто опублікуйте це у випадку, якщо хтось має таку ж проблему.