样式触发器将颜色设置为数据网格中具有特定值的单元格

时间:2015-12-17 10:22:01

标签: xml wpf datagrid cell

我试图在触发器的帮助下将颜色设置为数据网格的单元格,但以下代码无法正常工作

<DataGrid.CellStyle>
   <Style TargetType="DataGridCell">
      <Style.Triggers>
          <Trigger Property="Content" Value="1">
              <Setter Property="Background" Value="LightGren"/>
          </Trigger>
       </Style.Triggers>
   </Style>
</DataGrid.CellStyle>

如果数据网格单元格的内容为1,我希望该单元格为黄色,请提供黄色帮助。

1 个答案:

答案 0 :(得分:0)

如果你想在某个常量值上更改datagrid单元格背景,那么你可以尝试这样的事情:

<DataGridTextColumn Header="YourColumnHeader" Binding="{Binding SomeValue}">
    <DataGridTextColumn.CellStyle>
        <Style>
            <Setter Property="Border.Background" Value="{Binding SomeBool, Mode=TwoWay, Converter={StaticResource BooleanToBrushConverter}}" />
        </Style>
    </DataGridTextColumn.CellStyle>
</DataGridTextColumn>

转换器代码将是这样的:

public class BoolToBrushConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        bool isDiffer = (bool)value;
        if (isDiffer)
            return Brushes.LightGreen;
        else
            return null;
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

我希望这会有所帮助。

相关问题