嘿我想根据模型中的布尔值更改行前景颜色,最好的方法是什么?
答案 0 :(得分:6)
将样式定义如下(IsBlah是一个boolian属性):
<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})
答案 1 :(得分: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>