Я работаю над проверкой данных с помощью класса DxErrorProvider. Данные проверяются в ячейках GridControl с помощью события ValidatingEditor. Он отлично работает, однако один из столбцов очень плотный, поэтому, когда я хочу показать ошибку в ячейке этого столбца, я пытаюсь изменить ширину. Эти действия заставляют DxErrorProvider (возможно) показывать сообщение об ошибке в окне сообщений вместо симпатичного круга с «x» в ячейке.DxErrorProvider отображает сообщение об ошибке в окне сообщений при изменении ширины
Ниже вы можете увидеть мою реализацию обработчика событий.
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 ((х)) и изменить ширину столбца.
Наконец-то было время, чтобы вернуться к этой проблеме. Ваш пример работает по назначению, спасибо. – user2475983