【问题标题】:DataGrid Change Background of a single cellDataGrid 更改单个单元格的背景
【发布时间】:2013-01-14 12:52:27
【问题描述】:

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

【问题讨论】:

    标签: c# wpf datagrid background converter


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2018-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-12
      • 1970-01-01
      • 1970-01-01
      • 2013-01-28
      相关资源
      最近更新 更多