Как правильно реализовать проверку при 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 пустой?
Для добавления дополнительного условия перед binding-ом, чтобы значение подхватывалось только, если text-box пустой, можно использовать событие Validating для текстового поля, к которому вы привязываете значение.
В данном примере, если текстовое поле controlFIO_FIO_T_FA пустое, то происходит очистка binding-а и значение текстового поля устанавливается равным значению текстового поля controlFIO_M.FIO_T_FA. Затем снова добавляется binding только если текстовое поле пустое.
Для добавления дополнительного условия перед 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 только если текстовое поле пустое.