2012-02-21 70 views
1

我遇到了WPF DataGrid的问题。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(当用户将鼠标悬停在给定单元格上时,这完全显示在工具提示中)

我现在的问题是当我选择一个单元格时,无论我尝试做什么,前景get都会设置为白色 - 我真正想要发生的事情是将单元格(甚至更好,整行)的背景颜色更改为橙​​色。

任何帮助,这将是巨大的

克里斯

+0

有这么多的问题,你甚至看了看周围呢? – 2012-02-21 17:21:45

回答

2

如果你要改变DataGridCell.Background属性,您需要在您的ControlTemplate

例如地方使用它使用一个TemplateBinding

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

这解决了我的问题,非常感谢! – lookitskris 2012-02-21 19:06:54

相关问题