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编辑  收藏  举报

导航