0

我在 datagrid 上的行加载事件中附加了以下代码:

private void myGrid_LoadingRow(object sender, DataGridRowEventArgs e)
{
    MyObject o = e.Row.DataContext as MyObject;
    string highlightColour = ...;

    if (o.Source == "...")
        e.Row.Background = ...;
    else
        e.Row.Background = null;
}

问题是我需要突出显示行中的某些单元格而不是其他单元格而不是整行,我该如何实现呢?

4

2 回答 2

0

如果您对 XAML 解决方案没问题,那么您可以为此使用 CellStyle:

<controls:DataGridTextColumn.CellStyle>
    <Style TargetType="controls:DataGridCell">
         <Setter Property="Background" Value="{Binding MyProperty, 
                                               Converter={StaticResource myConverter}}" />
    </Style>
</controls:DataGridTextColumn.CellStyle>

MyProperty您需要检查的 objects 属性在哪里,并且是一个 IValueConverter,它根据您的逻辑myConverter返回一些。Brush此示例仅适用于一列,但您可以将此样式移至资源并在需要该功能的每一列中使用。

于 2013-09-04T14:08:42.553 回答
0

你可以这样做

假设您需要更改单元格索引 1 和 2

 e.Row.Cells[1].Background  = ....
 e.Row.Cells[2].Background  = ....
于 2013-09-04T11:06:56.780 回答