【发布时间】:2015-04-05 15:38:21
【问题描述】:
当背景不是白色时,我想更改 DataGrid 中 DataGridCell 的前景颜色。所以我写了这个 xaml:
<Style TargetType="{x:Type DataGridCell}">
<Setter Property="Foreground"
Value="White" />
<Style.Triggers>
<DataTrigger Binding="{Binding Background, RelativeSource={RelativeSource Self}}"
Value="Transparent">
<Setter Property="Foreground"
Value="Black" />
</DataTrigger>
</Style.Triggers>
</Style>
使用转换器测试输入和绑定,我可以看到绑定生成的正确值。但是,setter 似乎没有触发。
edit1:我正在通过转换器设置单元格背景颜色
edit2:实际上,datagridcell的文本块的背景是通过转换器设置的
【问题讨论】:
-
如何设置单元格背景颜色?
-
更新问题和答案
-
你的
Transparents 一样吗?即rgba(0,0,0,0)和rgba(255,255,255,0)都是透明的 -
此链接:social.msdn.microsoft.com/Forums/en-US/… 建议
{Binding RelativeSource={RelativeSource Mode=Self},Path=Background.Color} -
我只是将触发器切换到转换器而不是数据触发器,这样我就可以通过调试器获得更多可见性。由于 Ganesh 的问题,现在我明白了哪里出了问题。