我有以下数据网格:
<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>
我的新要求是在遇到特定值时将行更改为红色。具体来说,我必须使用每一行的数据检索一个新的 bool 值,如果是 true,我需要将该行的文本设置为红色。
最好的方法是什么?
最佳答案
最好的方法是使用样式。
<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>
我现在无法测试。我认为您必须在绑定(bind)上设置相对源。
关于c# - 如何在遇到特定值时更改 DataGrid 行颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15875040/