【发布时间】:2009-07-11 14:31:39
【问题描述】:
嘿,我想根据模型中的布尔值更改行前景色,最好的方法是什么?
【问题讨论】:
标签: wpf wpftoolkit wpfdatagrid
嘿,我想根据模型中的布尔值更改行前景色,最好的方法是什么?
【问题讨论】:
标签: wpf wpftoolkit wpfdatagrid
定义样式如下(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})
【讨论】:
这与 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>
【讨论】: