【发布时间】:2016-08-02 12:17:40
【问题描述】:
我打开我的数据网格,在某些列上以黑色显示数值,在其他列上以红色写入相同的数据,只是说那里没有真正存在的值,没有被编辑。如果有人把红色的数字改成了黑色。
我已经在 xaml 中为 DatagridCell 编写了一种样式 -
<Window.Resources>
<Style x:Key="D3ForegroundStyle" TargetType="{x:Type DataGridCell}" >
<Setter Property="Foreground" Value="Black" />
<Style.Triggers>
<DataTrigger Binding="{Binding Path=D3StatusVal}" Value="inherited">
<Setter Property="Foreground" Value="Red" />
</DataTrigger>
</Style.Triggers>
</Style>
</Window.Resources>
D3StatusVal 它是一个字符串,其值可以是“正常”或“继承”。 样式以这种方式链接到列:
<DataGridTextColumn.CellStyle>
<Style TargetType="{x:Type DataGridCell}" BasedOn="{StaticResource D3ForegroundStyle}"/>
</DataGridTextColumn.CellStyle>
第一次,在我打开窗口后不久,datagrid 已经按照我喜欢的方式填充了,相应地与 D3StatusVal 的值相匹配,一些值显示为黑色其他红色。在此之后,如果我尝试更改单元格的数据,则没有任何反应(我的意思是单元格颜色),即使 D3StatusVal 的值已更改,并且调用了 PropertyChanged 的一个事件(带有 x:name 的列) 提前致谢。
没有任何关于问候的提示?!好的,我会以更笼统的方式提出这个问题。 比方说,我想在每次更改单元格内容时以编程方式更改单元格的前景(不依赖于单元格中写入的值),正确的方法是什么?
【问题讨论】: