Eu tive esse problema e quase arranquei meu cabelo, e não consegui encontrar a resposta apropriada na rede. Eu estava tentando controlar a cor de fundo da linha selecionada em um WPF DataGrid. Simplesmente não faria isso. No meu caso, o motivo foi que eu também tinha um CellStyle no meu datagrid e o CellStyle substituiu o RowStyle que eu estava definindo. Curiosamente, porque o CellStyle nem estava definindo a cor do plano de fundo, que era configurada pelas propriedades RowBackground e AlternateRowBackground. No entanto, tentar definir a cor de fundo da linha selecionada não funcionou quando fiz isso:
<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>
e funcionou quando mudei o estilo desejado para a linha selecionada fora do estilo de linha e para o estilo de célula, da seguinte maneira:
<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>
Basta postar isso no caso de alguém ter o mesmo problema.