私はこの問題を抱えていて、髪の毛をほとんど引き裂き、ネットで適切な答えを見つけることができませんでした。WPF DataGridで選択した行の背景色を制御しようとしました。それはそれをしないだろう。私の場合、データグリッドにCellStyleもあり、CellStyleが設定していたRowStyleを上書きしたことが理由です。興味深いことに、CellStyleは背景色を設定していなかったので、代わりに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>
誰かが同じ問題を抱えている場合に備えて、これを投稿してください。