我有以下DataGrid:
<DataGrid AutoGenerateColumns="False" Name="dgPanelLogs">
<DataGrid.Columns>
<DataGridTextColumn Header="ID" SortMemberPath="ID"
x:Name="columnID"
Binding="{Binding Path=ID}"
IsReadOnly="True"
Width="50*"
SortDirection="Descending" >
</DataGridTextColumn>
<DataGridTextColumn Header="Time" SortMemberPath="Time"
x:Name="columnTime"
Binding="{Binding Path= Time, StringFormat='{}{0:dd/MM/yyyy HH:mm:ss}'}"
IsReadOnly="True"
Width="140*"
SortDirection="Descending">
</DataGridTextColumn>
<DataGridTextColumn Header="Event" SortMemberPath="Event"
x:Name="columnMessage"
Binding="{Binding Path=Message}"
IsReadOnly="True"
Width="350*"
SortDirection="Descending" >
</DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
我的新要求是在遇到某个值时将行更改为红色。具体来说,我必须为每行的数据检索一个新的布尔值,如果是,我需要将该行的文本设置为红色。
最好的方法是什么?
答案 0 :(得分:1)
答案 1 :(得分:1)
最好的方法是使用风格。
<DataGrid.Resources>
<Style TargetType="{x:Type DataGridRow}">
<Style.Triggers>
<DataTrigger Binding="{Binding Alarm}" Value="True">
<Setter Property="Foreground" Value="Red" />
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.Resources>
我现在不能测试它。我认为你必须在Binding上设置一个RelativeSource。