如何在silverlight中高亮显示数据网格rowload上一行的一个或多个单元格

本文关键字:单元格 一行 一个 silverlight 高亮 显示 rowload 网格 数据网 数据 | 更新日期: 2023-09-27 18:30:11

我的数据网格上的行加载事件附带了以下代码:

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;
}

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

如何在silverlight中高亮显示数据网格rowload上一行的一个或多个单元格

您可以按照以下进行操作

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

 e.Row.Cells[1].Background  = ....
 e.Row.Cells[2].Background  = ....

如果你对XAML解决方案满意,那么你可以使用CellStyle:

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

其中MyProperty是您需要检查的对象属性,myConverter是一个IValueConverter,它根据您的逻辑返回一些Brush。此示例仅针对一列,但您可以将此样式移动到资源中,并在每个需要该功能的列中使用。