Textblock在数据网格WPF中选择了前景色

时间:2011-07-04 15:08:16

标签: c# wpf xaml .net-3.5 datagrid

我在WPF中创建了一个数据网格...
我已经定义了几个自定义列..

 <my:DataGridTemplateColumn.CellTemplate>
       <DataTemplate>
           <StackPanel>
                <TextBlock Text="{Binding HeadC}" />
                <TextBlock Text="{Binding HeadCPercent}"  Foreground="#FFF05D1D" />
           </StackPanel>
       </DataTemplate>
 </my:DataGridTemplateColumn.CellTemplate>

问题是,当选择一行时,秒文本块颜色不会改变,几乎看不到......

解决这个问题的方法是什么?

1 个答案:

答案 0 :(得分:6)

DataTrigger添加到DataTemplate触发器集合中,该集合将根据行的选定状态更改前景。如下例所示:

<DataTemplate>
  <StackPanel>
    <TextBlock Text="{Binding HeadC}" />
    <TextBlock x:Name="tbPercent" Text="{Binding HeadCPercent}" Foreground="#FFF05D1D"/>
  </StackPanel>
  <DataTemplate.Triggers>
    <DataTrigger Binding="{Binding IsSelected, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type dg:DataGridRow}}}" Value="True">
        <Setter Property="Foreground" TargetName="tbPercent" Value="Blue" />
    </DataTrigger>
  </DataTemlate.Triggers>
</DataTemplate>

我将此answer作为基础并根据您的问题进行调整。我可以在代码中输入错字但你应该明白:)。希望它有所帮助。