1

我正在尝试在“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 单元格。这样做的正确方法是什么?

4

1 回答 1

0

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

  1. 用网格包裹单元格内容。
  2. 将网格设置为水平和垂直拉伸。
  3. 现在更改网格的背景颜色,而不是单元格的背景颜色。

我自己没有测试过,但我认为它值得一试。

于 2013-01-31T08:47:25.733 回答