Как правильно реализовать проверку при binding-е двух text-box? В C# (Windows Form)
Сделал привязку текстового поля 1-го User-Control к другому следующим образом. Они теперь полностью воспроизводят друг друга.this.controlFIO.FIO_T_FA.DataBindings.Add( "Text", this.controlFIO_M.FIO_T_FA, "Text", true, DataSourceUpdateMode.OnValidation );
Каким образом можно добавить дополнительное условие перед binding-ом, чтобы значение подхватывалось только, если text-box пустой?

21 Авг 2019 в 07:01
328 +2
1
Ответы
1

Для добавления дополнительного условия перед binding-ом, чтобы значение подхватывалось только, если text-box пустой, можно использовать событие Validating для текстового поля, к которому вы привязываете значение.

Пример кода:

private void controlFIO_FIO_T_FA_Validating(object sender, CancelEventArgs e)
{
TextBox textBox = (TextBox)sender;
if (string.IsNullOrEmpty(textBox.Text))
{
this.controlFIO.FIO_T_FA.DataBindings.Clear();
this.controlFIO.FIO_T_FA.Text = this.controlFIO_M.FIO_T_FA.Text;
this.controlFIO.FIO_T_FA.DataBindings.Add("Text", this.controlFIO_M.FIO_T_FA, "Text", true, DataSourceUpdateMode.OnValidation);
}
}

В данном примере, если текстовое поле controlFIO_FIO_T_FA пустое, то происходит очистка binding-а и значение текстового поля устанавливается равным значению текстового поля controlFIO_M.FIO_T_FA. Затем снова добавляется binding только если текстовое поле пустое.

20 Апр 2024 в 13:09
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир