c#Winforms如何获取属性绑定的控件

时间:2012-10-18 08:28:23

标签: c# binding system.reflection

我有很多在我的表单上动态创建的文本框,当它们被创建时,会添加数据绑定,将文本框绑定到我的类中的属性。

我需要能够获得对Textbox的引用,但是我只知道文本框绑定的属性。因此,只有知道它所绑定的属性的名称才能获得对文本框的引用。

我希望我已经正确地解释了这一点!

1 个答案:

答案 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));
}