バインディング プロパティ QualityStatus に基づいて行の色/テキストを強調表示する DataGrid があります。正常に動作しますが、デフォルトの行の強調表示では行の色が乱れます。HighlightBrushKey を透明に設定できるため、色は変更されませんが、行を選択してから別のコントロールにフォーカスした場合のように、これは「非アクティブ」な色には影響しません。また、選択した行のフォントの色を設定する方法もわかりません。
理想的には、3 つの条件のそれぞれについてハイライトの背景/テキストの色を設定できるタグがあればよいのですが、これを行う方法がわかりません。
<DataGrid.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent" />
<SolidColorBrush x:Key="{x:Static SystemColors.InactiveBorderBrushKey}" Color="Transparent" />
</DataGrid.Resources>
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Style.Triggers>
<DataTrigger Binding="{Binding QualityStatus}" Value="Poor">
<Setter Property="Background" Value="Red"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="FontWeight" Value="Bold"/>
</DataTrigger>
<DataTrigger Binding="{Binding QualityStatus}" Value="Fair">
<Setter Property="Background" Value="Yellow"/>
<Setter Property="Foreground" Value="Black"/>
<Setter Property="FontWeight" Value="Bold"/>
</DataTrigger>
<DataTrigger Binding="{Binding QualityStatus}" Value="Good">
<Setter Property="Background" Value="LightGreen"/>
<Setter Property="Foreground" Value="Black"/>
<Setter Property="FontWeight" Value="Normal"/>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>