Lightswitch C1FLexGrid 自定义列显示格式的几种写法

本文介绍了三种在 Lightswitch 中使用 C1FlexGrid 控件自定义列显示格式的方法:1) 在列属性中直接设置;2) 创建 ConditionalCellFactory 类并应用自定义规则;3) 使用条件格式类或自定义条件类进行多样化规则设定。
摘要由CSDN通过智能技术生成

1.最简单的方式,在控件列属性里设置,注(列的控件类型必需设为FLEX自带的那种才行), 有FORMAT CONDITION 可以设置,包括色彩等。一列只能定义一种规则。


2. 实现CellFactory ,自定义规则

 public class ConditionalCellFactory : CellFactory
        {
            public override void ApplyCellStyles(C1FlexGrid grid, CellType cellType, CellRange rng, System.Windows.Controls.Border bdr)
            {
                base.ApplyCellStyles(grid, cellType, rng, bdr);
                if ((cellType == CellType.Cell) && (rng.Column == 13)) // 对第几列处理
                {
                    var row = grid.Rows[rng.Row];
                    var cst = row.DataItem as OrderDetailExecuteDataItem; //获取当前行的实际对象值转一下
                    if (cst != null)
                    {
                        if (cst.DeliveryDate.Date > DateTime.Today)
                            bdr.Background = new SolidColorBrush(Colors.Blue);
                        else
                            bdr.Background = new SolidColorBrush(Colors.Red);
                    }
                }
            }
        }


 partial void FlexibleOrderDetailExecuteDataBySupplierIDGrid_Created()
        {
      
            IContentItemProxy proxy = this.FindControl("C1FlexGrid");
            proxy.ControlAvailable += (s, e) =>
            {
                var fg = e.Control as C1FlexGrid;
                if (fg != null)
                {
                    fg.CellFactory = new ConditionalCellFactory();
                }
            };

        }

3.   直接调用现有条件格式类(和第一个本质是一样,只是后台用代码实现,但可以定义多个规则)


void proxy_ControlAvailable(obje

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值