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

Gor*_*Ape 5 c# wpf xaml datagrid .net-3.5

我在WPF中创建了一个datagrid ...
我已经定义了几个自定义列..

 <my:DataGridTemplateColumn.CellTemplate>
       <DataTemplate>
           <StackPanel>
                <TextBlock Text="{Binding HeadC}" />
                <TextBlock Text="{Binding HeadCPercent}"  Foreground="#FFF05D1D" />
           </StackPanel>
       </DataTemplate>
 </my:DataGridTemplateColumn.CellTemplate>
Run Code Online (Sandbox Code Playgroud)

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

任何解决这个问题的方法?

Anv*_*aka 6

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

<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>
Run Code Online (Sandbox Code Playgroud)

我把这个答案作为基础并根据你的问题进行调整.我可以在代码中输入错字但你应该明白:).希望能帮助到你.