DataGrid选择的单元格背景

时间:2012-02-21 17:18:26

标签: wpf xaml wpfdatagrid

我遇到了WPF DataGrid的问题。

我有以下代码..

<Style TargetType="{x:Type DataGridCell}">
       <Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Self}, Path=Content.Text}" />
       <Setter Property="Template">
          <Setter.Value>
            <ControlTemplate TargetType="{x:Type DataGridCell}">
            <Border Name="DataGridCellBorder">
            <ContentControl Content="{TemplateBinding Content}">
             <ContentControl.ContentTemplate>
                <DataTemplate>
                   <TextBlock
                      Width="auto"
                      Height="auto"
                      Background="Transparent"
                      Text="{Binding Text}"
                      TextTrimming="CharacterEllipsis"
                      TextWrapping="WrapWithOverflow" />
                        </DataTemplate>
                     </ContentControl.ContentTemplate>
                  </ContentControl>
               </Border>
               <ControlTemplate.Triggers>
                <Trigger Property="IsSelected" Value="True">
                    <Setter Property="Background" Value="Orange" />
                </Trigger>
               </ControlTemplate.Triggers>
            </ControlTemplate>
          </Setter.Value>
       </Setter>
    </Style>

如您所见,我已使用自定义模板替换了默认的DataGridCell。这是必需的,因为我希望单元格具有TextTrimming,如果文本太大而无法放入给定单元格(当用户将鼠标悬停在给定单元格上时,这将完全显示在工具提示中)

我现在的问题是,当我选择一个单元格时,无论我尝试做什么,前景都会设置为白色 - 我真正想要发生的是让单元格(甚至更好,整行)背景颜色发生变化到橘子。

对此有任何帮助都很棒

克里斯

1 个答案:

答案 0 :(得分:2)

如果您要更改DataGridCell.Background属性,则需要在ControlTemplate

中的某处使用它

e.g。使用TemplateBinding

<Border Name="DataGridCellBorder"
        Background="{TemplateBinding Background}"/>