zoukankan      html  css  js  c++  java
  • WPF 根据绑定值设置DataGrid行背景色

    实现这个功能可以使用类型转换器

    1建立一个类BGConverter.cs该类需要继承IValueConverter接口,并实现接口的Convert与ConvertBack方法。注意在Class上需要加上一句话,

    [ValueConversion(typeof(int),typeof(Brushes))]

    前一个type是源类型,后一个是目标类型

    [ValueConversion(typeof(int),typeof(Brushes))]
        class BGConverter:IValueConverter
        {
            public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
            {
                int surplus=(int)value;
                if(surplus<10)
                {
                    return Brushes.Red;
                }else if(surplus>100)
                {
                    return Brushes.Yellow;
                }else
                {
                    return Brushes.White;
                }
            }
    
            public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
            {
                return null;
            }

    Convert方法中对value值进行判断,小于10的返回红色,大于100返回黄色,其他为白色。ConvertBack方法我用不到,返回空值。

    在xaml文件的window里加入一句话xmlns:local="clr-namespace:当前命名空间"

    在DataGrid中加入DataGrid.Resource

    1 <DataGrid.Resources>
    2                 <local:BGConverter x:Key="bgconverter"/>
    3                 <Style TargetType="DataGridRow">
    4                     <Setter Property="Background" Value="{Binding Path=Surplus, Converter={StaticResource bgconverter}}"/>         
    5                 </Style>
    6 </DataGrid.Resources>

    setter的value绑定值就是需要转换类型的绑定值。





  • 相关阅读:
    java的-D命令行参数 mvn -D参数
    storm1.1运行时问题
    shell 日期转换
    storm单机运行与集群运行问题
    [log4j]Slf4j的包冲突
    搭建Spark源码研读和代码调试的开发环境
    Centos7配置
    mvn本地执行java程序
    HDP和HDF
    Django——如何在Django模板中注入全局变量?——part1
  • 原文地址:https://www.cnblogs.com/shuqiangji/p/3808819.html
Copyright © 2011-2022 走看看