在你需要加载的键入代码,我一般放在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);
}
}
dg_showMeeting 是DATAGRID控件名吗?那下面的dg是什么?为什么DataRowView drv = dg.Items[i] as DataRowView中的DRV在运行时总是NULL,dg.Items[i]的类型可以强制转换为DataRowView吗?
@徐家官人: sorry,现在才回复,工作太忙,dg是我对dg_showmeeting的重写,可以理解为一个,至于下面的转换,如果有值,完全可以做到,前提,不要绑定对象,而是绑定dataset
@徐家官人: 我需要说明下,如果你绑定的是对象,我建议你直接as成你个人需要的对象,我的只是其中一种,只是取值使用,不做大的处理
这样的话不会立即刷新的
SelectionChanged事件里面写判断,设定颜色。不光行的背景色可以设置,连单元格的背景色也可以设置
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
}
}