Silverlight 利用DataGrid行加载事件动态控制行列显示
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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; }
随便说一下,行加载很好用,但具体控制表格的每一行或某行某列的某个子控件时,就需要我们做好定位工作,就需要平时积累控件定位的功夫啦!
比如:
DataGridCell aa = dg_source2.Columns[0].GetCellContent(e.Row) as DataGridCell; //定位到具体单元格(标准列)
先总结到这,学习并积累哈。
以上是关于Silverlight 利用DataGrid行加载事件动态控制行列显示的主要内容,如果未能解决你的问题,请参考以下文章
Silverlight 更改 Datagrid 上 selectedItem 的前景
在 Silverlight DataGrid 中设置初始排序顺序?
您可以在 Silverlight DataGrid 中将 ScrollIntoView() 与 PagedCollectionView 一起使用吗?