Tuve este problema y casi me arranqué el pelo, y no pude encontrar la respuesta adecuada en la red. Estaba tratando de controlar el color de fondo de la fila seleccionada en un WPF DataGrid. Simplemente no lo haría. En mi caso, la razón fue que también tenía un CellStyle en mi cuadrícula de datos, y el CellStyle anuló el RowStyle que estaba configurando. Curiosamente, porque CellStyle ni siquiera estaba configurando el color de fondo, que en su lugar era bing establecido por las propiedades RowBackground y AlternateRowBackground. Sin embargo, intentar establecer el color de fondo de la fila seleccionada no funcionó cuando hice esto:
<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>
y funcionó cuando moví el estilo deseado para la fila seleccionada fuera del estilo de fila y al estilo de celda, así:
<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>
Solo publica esto en caso de que alguien tenga el mismo problema.