zoukankan      html  css  js  c++  java
  • Silverlight 利用DataGrid行加载事件动态控制行列显示

    datagrid的绑定很好用,但有时候我们往往需要根据model内容来动态控制行或者列,该怎么办呢?

    这时候,我们就需要用到行加载事件:在加载每一行数据的时候,根据数据的内容来控制相应的表格显示。

    比如我们想要每五行置行底色为红色,可以这样:

     SolidColorBrush r = new SolidColorBrush(Colors.Red); 
     private void dataGrid1_LoadingRow(object sender, DataGridRowEventArgs e)
            {
                CData c = e.Row.DataContext as CData;
                if (c.id % 5 == 0)
                    e.Row.Background = r;
                else
                    e.Row.Background = new  SolidColorBrush(Colors.White);
    
            }

    如果,你想根据model的值,改变某一行某一自定义列的样式或内容,你也可以这样:

     private void dg_source2_LoadingRow(object sender, DataGridRowEventArgs e)
            {
                db_lsyjbInfo bindData = (db_lsyjbInfo)e.Row.DataContext;
                TextBox btn = dg_source2.Columns[0].GetCellContent(e.Row).FindName("tb") as TextBox; //定位同比这一列
                if (bindData.zbbm == "xjl")
                   btn.IsReadOnly = true;
            }

    顺便说一下,行加载很好用,但具体控制表格的每一行或某行某列的某个子控件时,就需要我们做好定位工作,就需要平时积累控件定位的功夫啦!

    比如:

    TextBlock aa = dg_source2.Columns[0].GetCellContent(e.Row) as TextBlock;  //定位到具体单元格(标准列),这里注意要将具体cell转换为TextBlock方便操作

    效果图如下:

    先总结到这,学习并积累哈。

     

  • 相关阅读:
    前后台验证字符串长度
    接口和抽象类该什么时候用?
    程序员常去网站汇总
    SQLServer复合查询条件(AND,OR,NOT)对NULL值的处理方法
    c#-轮询算法
    常用的SQL语句
    HTTP请求工具类
    asp.net mvc jQuery 城市二级联动
    ibatis动态多条件查询及模糊查询(oracle,mysql,sql)
    iBatis 中 Like 的写法实现模糊查询
  • 原文地址:https://www.cnblogs.com/prolovecui/p/5159747.html
Copyright © 2011-2022 走看看