У меня есть следующий класс:Как использовать выражение лямбда для обновления свойства?
public class MyClass
{
public int? Field1 { get; set; }
public int? Field2 { get; set; }
}
Элементы управление TextBox на форме привязаны к экземпляру этого класса через BindingSource
, а источник данных является обновлением на OnValidated
событии.
Однако, когда текстовое поле пусто, то свойство это обязательно не обновляется (предыдущее значение отображается снова):
Так, на OnValidating
случае на блок управления я добавил следующее:
int value;
bool ok = int.TryParse(((TextBox)sender).Text, out value);
if (!ok)
{
myClassInstance.Field1 = null;
}
Вопросы:
Является ли выше нормального поведения
BindingSource
, когда значениеTextBox
пуст?Возможно ли иметь общий метод, который я могу вызвать в своих
OnValidating
событиях. Что-то вроде:OnValidatingMethod((TextBox)sender, x => x.Field1);
выше строка кода, очевидно, не работает, так как экземпляр объекта не ссылается. Но мне было интересно, возможно ли что-то подобное? Возможно, расширение для класса:
myClassInstance.SetProperty(((TextBox)sender).Text, x => x.Field1);
Спасибо за объяснение и, как обычно, отличный ответ! –