【发布时间】:2016-04-22 07:36:48
【问题描述】:
我有以下课程:
public class MyClass
{
public int? Field1 { get; set; }
public int? Field2 { get; set; }
}
表单上的文本框控件通过BindingSource绑定到此类的一个实例,并且数据源在OnValidated事件上更新。
但是,当文本框为空时,它绑定的属性没有被更新(再次显示之前的值):
因此,在控件的 OnValidating 事件中,我添加了以下内容:
int value;
bool ok = int.TryParse(((TextBox)sender).Text, out value);
if (!ok)
{
myClassInstance.Field1 = null;
}
问题:
以上是
TextBox的值为空时BindingSource的正常行为吗?-
是否有可以在我的
OnValidating事件中调用的通用方法。比如:OnValidatingMethod((TextBox)sender, x => x.Field1);
上面这行代码显然行不通,因为没有引用对象实例。但我想知道这样的事情是否可能?也许是类的扩展:
myClassInstance.SetProperty(((TextBox)sender).Text, x => x.Field1);
【问题讨论】:
标签: c# data-binding lambda expression-trees bindingsource