【问题标题】:How to set background color for grid columns based on cell values in WPF? [duplicate]如何根据 WPF 中的单元格值设置网格列的背景颜色? [复制]
【发布时间】:2019-11-21 01:46:51
【问题描述】:

我需要根据单元格文本值设置单元格的背景。对于单个列,我需要根据值显示多个背景。我正在动态加载值。

单元格 1 - 值 1 - 红色

单元格 2 - 值 2- 绿色

单元格 3 - 值 1- 红色。

以上单元格在同一列中。我如何做到这一点?

【问题讨论】:

    标签: c# wpf grid styles converters


    【解决方案1】:

    使用 IValueConverter 将您的实际值转换为特定颜色。

    在后面的代码中:

    public class ValueToBgColorConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            // logic here, and return a color, like
            return Brushes.Black;
        }
    
        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            return null;
        }
    }
    

    在 XAML 中:

    <DataGridTemplateColumn.CellStyle>
        <Style TargetType="{x:Type DataGridCell}">
            <Setter Property="Background" Value="{Binding Path=Value,Converter={StaticResource ValueToBgColorCoverter}}"/>
        </Style>
    </DataGridTemplateColumn.CellStyle>
    

    【讨论】:

    • 你这里提到绑定一个属性来设置背景。但我的问题是从该单元格中获取值并根据该值设置背景。 DataMemberBinding="{Binding SubStatus}"
    • 我只是举了一个例子,你需要调整与转换器的绑定以绑定到作为单元格值来源的属性。
    猜你喜欢
    • 2011-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-02
    • 2011-09-14
    • 2011-04-03
    • 2017-12-08
    • 1970-01-01
    相关资源
    最近更新 更多