DataGrid更改单个单元格的背景

时间:2013-01-30 16:11:46

标签: c# wpf datagrid background converter

我试图在我的'DataGrid'中设置单个单元格的背景颜色,但每次我将颜色设置为DataGridCell时,整个行的背景都会被覆盖。 我的代码:

 <Setter Property="CellStyle">
                    <Setter.Value>
                        <Style TargetType="{x:Type DataGridCell}">
                            <Setter Property="Background" Value="{Binding id, Converter={StaticResource TheConverter}}" />
                        </Style>
                    </Setter.Value>
                </Setter>


public class CellHighlighterConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        if (value.ToString() == "1") return new SolidColorBrush(Colors.Red);

        return null;
    }

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

所以问题是...... ID为“1”的整行是红色的!不只是id细胞。这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

您可以尝试以下解决方法:

  1. 使用网格包裹单元格内容。
  2. 将网格设置为水平和垂直拉伸。
  3. 现在更改网格的背景颜色,而不是单元格的背景颜色。
  4. 我自己没有测试过,但我觉得它值得一试。