我有很多在我的表单上动态创建的文本框,当它们被创建时,会添加数据绑定,将文本框绑定到我的类中的属性。
我需要能够获得对Textbox的引用,但是我只知道文本框绑定的属性。因此,只有知道它所绑定的属性的名称才能获得对文本框的引用。
我希望我已经正确地解释了这一点!
答案 0 :(得分:4)
如果我理解正确,您可以在表单类中尝试此方法:
public Control GetControlByDataBinding(string key)
{
foreach (Control control in Controls)
{
foreach (Binding binding in control.DataBindings)
{
if (binding.PropertyName == key) return control;
}
}
return null;
}
甚至更好用 Linq :
public Control GetControlByDataBinding(string key)
{
return
Controls
.Cast<Control>()
.FirstOrDefault(control =>
control.DataBindings
.Cast<Binding>()
.Any(binding => binding.PropertyName == key));
}