DataGrid 中的 RowStyle 仅部分工作

RowStyle in DataGrid working only partially

这很奇怪,所以我确定我在这里遗漏了一些(几乎)显而易见的东西。我想控制所选行和单元格的外观,所以我正在玩触发器。触发似乎有效,因为我看到了关于颜色和厚度的设置。

<DataGrid.RowStyle>
  <Style TargetType="DataGridRow">
    <Style.Triggers>
      <Trigger Property="IsSelected" Value="True">
        <Setter Property="Background" Value="Aquamarine"></Setter>
      </Trigger>
    </Style.Triggers>
  </Style>
</DataGrid.RowStyle>

<DataGrid.CellStyle>
  <Style TargetType="DataGridCell">
    <Style.Triggers>
      <Trigger Property="IsSelected" Value="True">
        <Setter Property="BorderThickness" Value="0"></Setter>
      </Trigger>
    </Style.Triggers>
  </Style>
</DataGrid.CellStyle>

但是,问题是行的背景在所有包含数据的列上都是默认的蓝色,而在最后一列右侧的空白 space 上是我自定义的海蓝宝石,就像下图描述了。

什么给了?我的 google-fu 没有显示任何需要删除的持久默认值...

默认蓝色是 DataGridCellTemplate 的一部分。

您可以重新模板化 DataGridCell 并省略此功能,或者您可以只在现有 DataGridCell 样式的 IsSelected 触发器中添加一个 setter 并将 Background 设置为 Transparent.

<DataGrid.CellStyle>
  <Style TargetType="DataGridCell">
    <Style.Triggers>
      <Trigger Property="IsSelected" Value="True">
        <Setter Property="BorderThickness" Value="0"/>
        <Setter Property="Background" Value="Transparent"/>
      </Trigger>
    </Style.Triggers>
  </Style>
</DataGrid.CellStyle>