У меня есть метка в DataGridTemplateColumn, я использую триггер, чтобы убедиться, что передний план белый, когда выбран ряд (синий). Когда строка выбрана, но сетка данных не сфокусирована, она все еще белая; это имеет смысл, потому что он все еще выбран.
Но я хочу сделать передний план черным, когда IsSelected и когда сетка неактивна.
Вот стиль и столбец
Спасибо за любую помощь.
<Style x:Key="DataGridLabelStyle" TargetType="Label" BasedOn="{StaticResource DataGridControlStyle}" >
<Setter Property="Foreground" Value="Black" />
<Style.Triggers>
<DataTrigger Value="True">
<DataTrigger.Binding >
<MultiBinding Converter="{StaticResource BooleanAndConverter}">
<Binding Path="IsSelected" RelativeSource="{RelativeSource AncestorType={x:Type DataGridRow}}" />
<Binding Path="IsKeyboardFocused" RelativeSource="{RelativeSource AncestorType={x:Type DataGrid}}" Converter="{StaticResource NegateBooleanConverter}" />
</MultiBinding>
</DataTrigger.Binding>
<Setter Property="Foreground" Value="White" />
</DataTrigger>
</Style.Triggers>
</Style>
<DataGridTemplateColumn Header="Date">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Label Content="{Binding TransactionDate}" Style="{StaticResource DataGridLabelStyle}" ContentStringFormat="yyyy-MM-dd" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<DatePicker SelectedDate="{Binding TransactionDate}" />
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>