【发布时间】:2010-04-30 15:22:07
【问题描述】:
我正在尝试根据其值有条件地控制列中的 DataGrid 单元格背景。不幸的是,我得到了这样的东西:
这不是很美观,我想让整个单元格用不同的颜色,而不仅仅是文本后面的部分。这是代码部分:
<DataGridTextColumn
Binding="{Binding Path=PrivateMemorySize, StringFormat='#,##0'}"
Header="Memory Size" >
<DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="HorizontalAlignment" Value="Right" />
<Style.Triggers>
<DataTrigger Binding="{Binding Path=PrivateMemorySize,
Converter={StaticResource isLarge},
ConverterParameter=20000000}" Value="true">
<Setter Property="Background" Value="Yellow" />
</DataTrigger>
</Style.Triggers>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
(isLarge只是一个转换器,当单元格值大于参数时返回true)
如果我为 DataGridCell 目标定义一个样式,结果是一样的。
知道什么地方出了问题吗?我没有使用任何花哨的东西,只是使用默认的 DataGrid(在此示例中链接到 CLR 对象以填充表格)。
【问题讨论】: