2012-02-21 72 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

相關問題