DevExpress 通过IValueConverter设置GridControl隔行改变颜色

DevExpress功能很强大,通过不断地摸索和学习,掌握了一些小的技巧,分享给大家,通过值转换器设置隔行变色。

首先编写一个Product类,并编写三个属性。

 public class Product
    {
        public string ProductName { get; set; }
        public double UnitPrice { get; set; }
        public int UnitsOnOrder { get; set; }
    }

然后实现BackGroundColorConverter类,它继承IValueConverter

 public class BackGroundColorConverter : IValueConverter
    {
        public object Convert(object value, Type typeTarget, object param, System.Globalization.CultureInfo culture)
        {
            string rowNum = value as string;
            if (rowNum == null)
            {
                return "Black";
            }
            else if (rowNum == "Konbu")
            {
                return "#DDEBF7";
            }
            else
            {
                return "White";
            }
        }
        public object ConvertBack(object value, Type typeTarget, object param, System.Globalization.CultureInfo culture)
        {
            return "";
        }
    }

最后实现前台代码:

编写一个实现3列的GridControl,我这里已经关掉了一些功能。只实现简单的表格功能。特别强调一些ShowIndicator="False"是否设置行索引,设置成False,TableView前边什么都没有。如果设置成True,会有一个行选中效果。


    
        
        
    

    
        
            
                
            
            
            
            
        
    

最后在构造函数中,对GridControl数据源初始化数据:

table.Columns.Add("ProductName",System.Type.GetType("System.String"));
            table.Columns.Add("UnitPrice",System.Type.GetType("System.String"));
            table.Columns.Add("UnitsOnOrder",System.Type.GetType("System.String"));
            DataRow dr = table.NewRow();
            dr["ProductName"] = "Konbu";
            dr["UnitPrice"] = 18;
            dr["UnitsOnOrder"] = 10;
            table.Rows.Add(dr);

            DataRow dr1 = table.NewRow();
            dr1["ProductName"] = "Ipoh Coffee";
            dr1["UnitPrice"] = 36.8;
            dr1["UnitsOnOrder"] = 12;
            table.Rows.Add(dr1);

            DataRow dr2 = table.NewRow();
            dr2["ProductName"] = "Konbu";
            dr2["UnitPrice"] = 18.4;
            dr2["UnitsOnOrder"] = 18;
            table.Rows.Add(dr2);

            DataRow dr3 = table.NewRow();
            dr3["ProductName"] = "Boston Crab Meat";
            dr3["UnitPrice"] = 18.4;
            dr3["UnitsOnOrder"] = 18;
            table.Rows.Add(dr3);

            DataRow dr4 = table.NewRow();
            dr4["ProductName"] = "Konbu";
            dr4["UnitPrice"] = 6;
            dr4["UnitsOnOrder"] = 24;
            table.Rows.Add(dr4);

最后看一下运行效果:

DevExpress 通过IValueConverter设置GridControl隔行改变颜色_第1张图片

隔行变色的效果:

代码工程:https://download.csdn.net/download/chulijun3107/12821273

想要源码请留言。

 

你可能感兴趣的:(DevExpress,GridControl,windows)