我为devexpress网格视图单元设置了CellValueChanging事件,其中通过更改单元格(组合框)的值,其他单元格的值发生变化。 当选择其中一个项目时,单元格值更改事件会触发,但是注释会显示在其他单元格中,但是当选择另一个组合框项目时,它的效果非常好。 每个新行也会出现这种情况。 我怎么处理这个? 这是事件:
private void windowBasedMainGridView_CellValueChanging(object sender, CellValueChangedEventArgs e)
{
//if the selected column is not int or dbl, set the descritazation to be automatic
if (e.Column.FieldName == "CriterionParameter")
{
windowBasedMainGridView.SetFocusedRowCellValue("CriterionParameterDiscretization", "Automatic");
string strSelectedColumnName = commonlyUsedMethodsClass.ColumnNameFromColumnCaption(frmMainForm.projectDataSet.Tables[strinputDatatableName], e.Value.ToString());
Type typeOfSelectedParameter = frmMainForm.projectDataSet.Tables[strinputDatatableName].Columns[strSelectedColumnName].DataType;
if ((typeOfSelectedParameter == typeof(double) || typeOfSelectedParameter == typeof(int)))
{
windowBasedMainGridView.SetFocusedRowCellValue("CriterionParameterDesceretazationMethod", "Linear");
//set the min and max of property
if (typeOfSelectedParameter == typeof(double))
{
List<double> valuesList = commonlyUsedMethodsClass.DoubleListGenerator(frmMainForm.projectDataSet.Tables[strinputDatatableName], strSelectedColumnName);
windowBasedMainGridView.SetFocusedRowCellValue("CriterionParameterMinimum", valuesList.Min());
windowBasedMainGridView.SetFocusedRowCellValue("CriterionParameterMaximum", valuesList.Max());
}
else
{
List<int> valuesList = commonlyUsedMethodsClass.IntegerListGenerator(frmMainForm.projectDataSet.Tables[strinputDatatableName], strSelectedColumnName);
windowBasedMainGridView.SetFocusedRowCellValue("CriterionParameterMinimum", valuesList.Min());
windowBasedMainGridView.SetFocusedRowCellValue("CriterionParameterMaximum", valuesList.Max());
}
}
else
{
windowBasedMainGridView.SetFocusedRowCellValue("CriterionParameterDesceretazationMethod", "");
windowBasedMainGridView.SetFocusedRowCellValue("CriterionParameterMinimum", null);
windowBasedMainGridView.SetFocusedRowCellValue("CriterionParameterMaximum", null);
}
}
下面的图片显示首先选择该项目(其他单元格未自动填充): 下面的图片是当第一次选择另一个组合框项目然后选择深度项目时(其他单元格根据cellvaluechanging事件自动填充):
答案 0 :(得分:0)
尝试在处理程序的末尾添加此方法:
windowBasedMainGridView.BeginDataUpdate();
windowBasedMainGridView.EndDataUpdate();
OR:
windowBasedMainGridView.RefreshData();
此外,您可能需要调用PostEditor方法:
windowBasedMainGridView.PostEditor();