Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何根据条件更改单元格的背景色?_C#_Wpf_Xaml - Fatal编程技术网

C# 如何根据条件更改单元格的背景色?

C# 如何根据条件更改单元格的背景色?,c#,wpf,xaml,C#,Wpf,Xaml,如何根据数值上的条件更改单元格的背景色 例如,当价格大于10时,背景颜色为红色 我这样做了,但该值保持不变,我希望它适用于所有大于100的值,例如。对不起,我的英语不好 您可以使用IValueConverter将价格转换为颜色,并定义DataGridTextColumn.CellStyle以使用此转换器 在代码中的某个地方定义: 公共类PriceToBackgroundColorConverter:IValueConverter{ //将值转换为颜色。 //如果值大于100,则返回红色,否则返回

如何根据数值上的条件更改单元格的背景色

例如,当价格大于10时,背景颜色为红色

我这样做了,但该值保持不变,我希望它适用于所有大于100的值,例如。对不起,我的英语不好

您可以使用IValueConverter将价格转换为颜色,并定义DataGridTextColumn.CellStyle以使用此转换器

在代码中的某个地方定义:

公共类PriceToBackgroundColorConverter:IValueConverter{ //将值转换为颜色。 //如果值大于100,则返回红色,否则返回白色。 公共对象Convertobject值,类型targetType,对象参数,CultureInfo区域性{ 整数价格=整数价值; 如果价格>100{ 返回刷。红色; }否则{ 返回刷。白色; } } 公共对象ConvertBackobject值,类型targetType,对象参数,CultureInfo区域性{ 抛出新的NotImplementedException; } } 现在,您可以通过将此转换器添加到DataGrid或任何父控件的资源中,并使用Setter设置所有DataGridCell对象的样式来使用它

这将指示DataGridTextColumn将样式应用于其所有DataGridCell子级,并且此样式通过PriceToBackgroundColorConverter将每个DataGridCell的背景属性绑定到其Price属性

您可以更改转换器代码以执行任何类型的逻辑,为不同的范围提供多种颜色等


您还可以定义更多的转换器和设置器来更改其他属性。

您能为本例显示一个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>