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方便操作

    效果图如下:

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

     

  • 相关阅读:
    eslint 的 env 配置是干嘛使的?
    cookie httpOnly 打勾
    如何定制 antd 的样式(theme)
    剑指 Offer 66. 构建乘积数组
    剑指 Offer 65. 不用加减乘除做加法
    剑指 Offer 62. 圆圈中最后剩下的数字
    剑指 Offer 61. 扑克牌中的顺子
    剑指 Offer 59
    剑指 Offer 58
    剑指 Offer 58
  • 原文地址:https://www.cnblogs.com/prolovecui/p/5159747.html
Copyright © 2011-2022 走看看