DataBinding и ErrorProvider - Как предоставить пользовательские сообщения об ошибках?

StackOverflow https://stackoverflow.com/questions/2559422

Вопрос

Мы используем бизнесобъекты, внедряем IDataErrorInfo а также IEditableObject. BindingListS С этими объектами добавляются в BindingSources, они используются для привязки USERCONTROLS и DataGrids в формах (Winforms). А BindingSource дополнительно устанавливается в качестве источника данных ErrorProvider формы.

Мы используем в настоящее время текстовые поля для свойств типа INT и Short. Они подтверждены внутри бизнес -объектов с пользовательской проверкой, такие как значения MIN/MAX и т. Д., Которые работают нормально, поскольку сообщение об ошибке формирует наши пользовательские проверки, которые хорошо отображаются рядом с текстовым поле.

Однако, если вход больше, чем значение int (например, «9999999999»)), BindingSource даже не пытается ввести это значение в BusinesObject . " Мы не хотим беспокоить наших пользователей «Int32», но хотим для этого пользовательский ошибочный ошибку.

Приятно, что BindingSource действительно предоставляет эту функцию, но возможно ли предоставить пользовательские сообщения об ошибках для этого?

Это было полезно?

Решение

Вам нужно установить FormattingEnabled Свойство в False, чтобы отключить поведение обработки ошибок.

Как это:

textBox1.DataBindings.Add("Text", bindingSource1, "IntValue", false, 
    System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top