Bu sorunu yaşadım ve neredeyse saçımı yırtıyordum ve internette uygun cevabı bulamadım. Bir WPF DataGrid'de seçilen satırın arka plan rengini kontrol etmeye çalışıyordum. Sadece yapmazdı. Benim durumumda bunun nedeni, datagrid'imde bir CellStyle'ım olması ve CellStyle'ın ayarladığım RowStyle'ı geçersiz kılmasıydı. İlginç bir şekilde, CellStyle arka plan rengini bile ayarlamıyordu, bunun yerine RowBackground ve AlternateRowBackground özellikleri tarafından ayarlanan bing idi. Yine de, bunu yaptığımda seçilen satırın arka plan rengini ayarlamaya çalışmak hiç işe yaramadı:
<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>
ve seçilen satır için istenen stili satır stilinin dışına ve hücre stiline taşıdığımda işe yaradı, şöyle:
<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>
Birinin aynı sorunu yaşama ihtimaline karşı bunu gönderiyorum.