0

フォーム上で動的に作成されるさまざまなテキスト ボックスがあります。それらが作成されると、データ バインディングが追加され、テキスト ボックスがクラスのプロパティにバインドされます。

テキストボックスへの参照を取得できる必要がありますが、テキストボックスがバインドされているプロパティしか知りません。したがって、バインドされているプロパティの名前だけを知っているテキストボックスへの参照を取得することは可能ですか?

私はこれを適切に説明したことを願っています!

4

1 に答える 1

4

私の理解が正しければ、Formクラスでこのメソッドを試すことができます。

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));
}
于 2012-11-04T23:04:32.377 に答える