专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > Silverlight

Silverlight 利用DataGrid行加载事件动态控制队列显示

发布时间:2011-06-27 19:21:45 文章来源:www.iduyao.cn 采编人员:星星草
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方便操作

效果图如下:

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

 

友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: