XamDataGrid不响应DataValueChanged的事件
有时候当XamDataGrid数据表里面的某些数据变化时,根据数据变化来改变单元格的颜色或其他操作来做预警,用户提示 是很有效的
可以给XamDataGrid添加DataValueChanged事件.
例如:
<igDP:XamDataGrid Name="xamDataGrid" Margin="5" GroupByAreaLocation="None" Theme="IGTheme" DataValueChanged="xamDataGrid_DataValueChanged" > <igDP:XamDataGrid.FieldSettings> <igDP:FieldSettings /> </igDP:XamDataGrid.FieldSettings> <igDP:XamDataGrid.ViewSettings> <igDP:GridViewSettings /> </igDP:XamDataGrid.ViewSettings> <igDP:XamDataGrid.FieldLayoutSettings> <igDP:FieldLayoutSettings AutoGenerateFields="True" AllowDelete="False"/> </igDP:XamDataGrid.FieldLayoutSettings> <igDP:XamDataGrid.FieldLayouts> <igDP:FieldLayout > <igDP:FieldLayout.Fields > <igDP:Field Name="StuName" Label="姓名" Width="Auto" /> <igDP:Field Name="Class" Label="班级" Width="Auto" /> <igDP:Field Name="Sex" Label="性别" Width="Auto" /> <igDP:Field Name="StuNum" Label="学号" Width="Auto" /> <igDP:Field Name="IsPresent" Label="出席" Width="Auto" /> </igDP:FieldLayout.Fields> </igDP:FieldLayout> </igDP:XamDataGrid.FieldLayouts> </igDP:XamDataGrid>
然后在事件函数中这样操作:
private void xamDataGrid_DataValueChanged(object sender, Infragistics.Windows.DataPresenter.Events.DataValueChangedEventArgs e) { if ("未出席" == e.CellValuePresenter.Value.ToString()) { e.CellValuePresenter.Background = Brushes.White; } if ("请假" == e.CellValuePresenter.Value.ToString()) { e.CellValuePresenter.Background = Brushes.Yellow; } if ("出席" == e.CellValuePresenter.Value.ToString()) { e.CellValuePresenter.Background = Brushes.Green; } }
但是有一点切记!!!!!!!
我在这个地方纠结了很久,必须对XamDataGrid做如下初始化:
xamDataGrid.FieldLayouts[0].Fields["IsPresent"].Settings.DataValueChangedNotificationsActive = true;
否则XamDataGrid将不响应DataValueChanged事件,这也是在infragistc的wpf Sample中看到的.
posted on 2013-02-28 18:57 xiaxia—博客园 阅读(402) 评论(1) 编辑 收藏 举报