C# 如何根据条件更改单元格的背景色?
如何根据数值上的条件更改单元格的背景色 例如,当价格大于10时,背景颜色为红色 我这样做了,但该值保持不变,我希望它适用于所有大于100的值,例如。对不起,我的英语不好 您可以使用IValueConverter将价格转换为颜色,并定义DataGridTextColumn.CellStyle以使用此转换器 在代码中的某个地方定义: 公共类PriceToBackgroundColorConverter:IValueConverter{ //将值转换为颜色。 //如果值大于100,则返回红色,否则返回白色。 公共对象Convertobject值,类型targetType,对象参数,CultureInfo区域性{ 整数价格=整数价值; 如果价格>100{ 返回刷。红色; }否则{ 返回刷。白色; } } 公共对象ConvertBackobject值,类型targetType,对象参数,CultureInfo区域性{ 抛出新的NotImplementedException; } } 现在,您可以通过将此转换器添加到DataGrid或任何父控件的资源中,并使用Setter设置所有DataGridCell对象的样式来使用它 这将指示DataGridTextColumn将样式应用于其所有DataGridCell子级,并且此样式通过PriceToBackgroundColorConverter将每个DataGridCell的背景属性绑定到其Price属性 您可以更改转换器代码以执行任何类型的逻辑,为不同的范围提供多种颜色等C# 如何根据条件更改单元格的背景色?,c#,wpf,xaml,C#,Wpf,Xaml,如何根据数值上的条件更改单元格的背景色 例如,当价格大于10时,背景颜色为红色 我这样做了,但该值保持不变,我希望它适用于所有大于100的值,例如。对不起,我的英语不好 您可以使用IValueConverter将价格转换为颜色,并定义DataGridTextColumn.CellStyle以使用此转换器 在代码中的某个地方定义: 公共类PriceToBackgroundColorConverter:IValueConverter{ //将值转换为颜色。 //如果值大于100,则返回红色,否则返回
您还可以定义更多的转换器和设置器来更改其他属性。您能为本例显示一个xaml示例吗?请分享一些代码,或详细说明您的问题,以便我们了解您的要求和帮助。Corentin Pane,Branden,Ok@CorentinPane OK@Branden我更新我的问题
<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>