我在WPF中创建了一个数据网格...
我已经定义了几个自定义列..
<my:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding HeadC}" />
<TextBlock Text="{Binding HeadCPercent}" Foreground="#FFF05D1D" />
</StackPanel>
</DataTemplate>
</my:DataGridTemplateColumn.CellTemplate>
问题是,当选择一行时,秒文本块颜色不会改变,几乎看不到......
解决这个问题的方法是什么?
答案 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作为基础并根据您的问题进行调整。我可以在代码中输入错字但你应该明白:)。希望它有所帮助。