首页 新闻 会员 周边 捐助

在wpf datagrid中,想要根据一个条件来改变datagrid行的背景颜色

0
悬赏园豆:20 [已解决问题] 解决于 2013-01-14 16:39

在wpf datagrid中,想要根据一个条件来改变datagrid行的背景颜色

例如根据学生的年龄来修改,年龄小于18岁的,该行为红色显示,如何做到

问题补充:

这样的操作要在加载事件中完成

源坊的主页 源坊 | 初学一级 | 园豆:9
提问于:2013-01-14 10:34
< >
分享
最佳答案
0

在你需要加载的键入代码,我一般放在TabControl的selected事件中

 Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.ApplicationIdle, new Action(方法名));

 

我个人定义了一个方法

 for (int i = 0; i < this.dg_showMeeting.Items.Count; i++)
            {
                DataRowView drv = dg.Items[i] as DataRowView;
                int age= Convert.ToDateTime(drv["age"]);
                if (age < 18)
                {
                    var row = dg.ItemContainerGenerator.ContainerFromItem(dg.Items[i]) as DataGridRow;
                    row.Background = new SolidColorBrush(Colors.Red);
                }
            }   

源坊 | 初学一级 |园豆:9 | 2013-01-14 16:37

dg_showMeeting 是DATAGRID控件名吗?那下面的dg是什么?为什么DataRowView drv = dg.Items[i] as DataRowView中的DRV在运行时总是NULL,dg.Items[i]的类型可以强制转换为DataRowView吗?

徐家官人 | 园豆:202 (菜鸟二级) | 2013-04-12 11:38

@徐家官人: sorry,现在才回复,工作太忙,dg是我对dg_showmeeting的重写,可以理解为一个,至于下面的转换,如果有值,完全可以做到,前提,不要绑定对象,而是绑定dataset

源坊 | 园豆:9 (初学一级) | 2013-04-29 06:25

@徐家官人: 我需要说明下,如果你绑定的是对象,我建议你直接as成你个人需要的对象,我的只是其中一种,只是取值使用,不做大的处理

源坊 | 园豆:9 (初学一级) | 2013-04-29 07:20

这样的话不会立即刷新的

leafroc | 园豆:112 (初学一级) | 2019-05-29 16:17
其他回答(2)
1

SelectionChanged事件里面写判断,设定颜色。不光行的背景色可以设置,连单元格的背景色也可以设置

收获园豆:20
lanyefeng2008 | 园豆:20 (初学一级) | 2013-01-14 11:13
0

for (int i = 0; i < this.GdPatientPresc.Items.Count; i++)//GdPatientPresc是DADAGRID控件名吗
{
var itemx = GdPatientPresc.Items[i] as PrescInfoModel;//datagrid选中数据的数据类型
if(itemx==null)
{
return;
}
if (itemx.prescStatus)
{
var row = GdPatientPresc.ItemContainerGenerator.ContainerFromItem(GdPatientPresc.Items[i]) as DataGridRow;
if (row == null) return;
row.Background = new SolidColorBrush(Colors.Gray);//Brushes.Gray
}
}

threee | 园豆:204 (菜鸟二级) | 2019-02-18 16:14
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册