1

嘿,我想根据模型中的布尔值更改行前景色,最好的方法是什么?

4

2 回答 2

6

定义样式如下(IsBlah 是一个布尔属性):

    <Style x:Key="MyRowStyle" TargetType="{x:Type dg:DataGridRow}">
        <Setter Property="Background" Value="White"/>
        <Setter Property="Foreground" Value="DarkBlue"/>            
        <Style.Triggers>
            <DataTrigger Binding="{Binding IsBlah}" Value="False" >
                <Setter Property="Background" Value="DarkGray" />
                <Setter Property="Foreground" Value="White" />
            </DataTrigger>
        </Style.Triggers>
    </Style>

您的 DataGrid 应该有一个自定义的 RowStyle。(RowStyle="{StaticResource MyRowStyle})

于 2009-08-17T05:30:56.690 回答
1

这与 Boris 的答案基本相同,但如果您更喜欢直接在 DataGrid 定义中定义样式,请使用以下语法。

注意:Blend 不会为您提供实时预览,因此您必须运行它

<DataGrid>      
    <DataGrid.RowStyle>
        <Style TargetType="DataGridRow">
            <Style.Triggers>
                <DataTrigger Binding="{Binding HasErrors}" Value="True">
                    <Setter Property="Foreground" Value="Red"/>
                </DataTrigger>      
            </Style.Triggers>
        </Style>
    </DataGrid.RowStyle>
</DataGrid>
于 2012-07-07T01:44:36.110 回答