我正在使用 DxErrorProvider 类进行数据验证。借助 ValidatingEditor 事件在 GridControl 的单元格中验证数据。它工作正常,但是其中一列非常紧,所以当我想在该列的单元格中显示错误时,我尝试更改宽度。这些操作使 DxErrorProvider(可能)在消息框中显示错误,而不是在单元格中显示带有“x”的漂亮圆圈。
下面你可以看到我的事件处理程序的实现。
private void ValidatingEditor(object sender, BaseContainerValidateEditorEventArgs e)
{
GridView view = sender as GridView;
if (view.FocusedColumn.FieldName == "COLUMN1")
{
if (e.Value is bool)
{
GridColumn column = view.GetDataSourceItem<MyClass>(view.FocusedRowHandle);
if (Names.Any(x => x.FieldName == column.FieldName) && !((bool)e.Value))
{
// These 2 lines make errorprovider go crazy
//view.FocusedColumn.MaxWidth += 50;
//view.FocusedColumn.Width += 30;
e.Valid = false;
e.ErrorText = "The error";
}
else
{
e.Valid = true;
//view.FocusedColumn.Width -= 30;
//view.FocusedColumn.MaxWidth -= 50;
}
}
else
{
e.Valid = false;
e.ErrorText = "Invalid value";
}
}
}
如何保留 DxErrorProvider 的默认行为(( x ))并更改列的宽度。