数据网格行的条件文本颜色?

8

我有一个datagrid,它绑定了一个数据库表。我需要根据其中一列的值将行的前景色更改为蓝色。我可以这样做吗?我尝试使用IValueConverter,但我认为我只能一次处理一个单元格。

2个回答

24
<DataGrid>
    <DataGrid.CellStyle>
        <Style TargetType="{x:Type DataGridCell}">
            <Style.Triggers>
                <DataTrigger Binding="{Binding SomeProperty}" Value="SomeValue" >
                    <Setter Property="Foreground" Value="Blue" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </DataGrid.CellStyle>
</DataGrid>

你尝试过这段代码吗?我保证这会改变整行的前景色,除非你在使用DataGridTemplateColumns或其他什么东西。 - kevev22
@kevev22 即使如此,它也应该起作用,除非各个模板覆盖了 TextBlock.Foreground :) - user572559
有人能简单解释一下吗,为什么它会影响整个DataGridRow并将其前景色变为蓝色,而不仅仅是DataGridCell?谢谢。 - George

0
请使用以下内容:
<DataGrid.RowStyle>
    <Style TargetType="DataGridRow">
        <Style.Triggers>
            <DataTrigger Binding="{Binding SomeProperty}" Value="SomeValue">
                <Setter Property="Foreground" Value="Blue" />
                <Setter Property="FontWeight" Value="Bold" />
            </DataTrigger>
        </Style.Triggers>
    </Style>
</DataGrid.RowStyle>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接