如何通过条件或数值更改单元格的背景色?
例如,当价格大于10时,背景颜色为红色。
我这样做了,但值保持不变,我希望这适用于所有大于100的值,例如。
<DataGridTextColumn Binding="{Binding Price}"
Header="Price">
<DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}">
<Style.Triggers>
<Trigger Property="Text" Value="100">
<Setter Property="Foreground" Value="Red"/>
<Setter Property="FontWeight" Value="Bold"/>
</Trigger>
</Style.Triggers>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
字符串
1条答案
按热度按时间mqkwyuun1#
您可以使用
IValueConverter
将价格转换为颜色,并定义DataGridTextColumn.CellStyle
以使用此转换器。在你的代码中定义这个:
字符串
现在,您可以使用此转换器,方法是将其添加到
DataGrid
(或任何父控件)的Resources
中,并使用Setter
来样式化所有DataGridCell
对象。型
这将指示您的
DataGridTextColumn
将Style
应用于它的所有DataGridCell
子节点,并且这个Style
通过PriceToBackgroundColorConverter
将每个DataGridCell
的Background
属性绑定到它的Price
属性。您可以更改转换器代码以执行任何类型的逻辑,为不同的范围提供多种颜色等。
您还可以定义更多转换器和更多
Setter
来更改其他属性。