Привязать несколько ComboBox к форме C # - PullRequest
2 голосов
/ 27 октября 2010

Это кажется простой задачей, но может быть и более простой способ.

У меня есть форма с 30 выпадающими списками, для которых требуется один и тот же набор данных.В настоящее время я связываю каждого из них:

DataTable t = GetData();

this.ComboBox1.DataSource = t;
this.ComboBox1.DisplayMember = "heading";

this.ComboBox2.DataSource = t;
this.ComboBox2.DisplayMember = "heading";

this.ComboBox3.DataSource = t;
this.ComboBox3.DisplayMember = "heading";

...
...

this.ComboBoxN.DataSource = t;
this.ComboBoxN.DisplayMember = "heading";

Есть ли способ связать их всех менее утомительно?

Спасибо.

Ответы [ 2 ]

3 голосов
/ 27 октября 2010
foreach (var control in this.Controls)
{
    if (control is (ComboBox))
    {
        ((ComboBox)control).DataSource = t;
        ((ComboBox)control).DisplayMember = "heading";
    }
}
0 голосов
/ 27 октября 2010
private void bindIt(ComboBox c)
{
    c.DataSource = t;
    c.DisplayMember = "heading";
}

private void bindThemAll()
{
    bindIt(this.ComboBox1);
    bindIt(this.ComboBox2);
    bindIt(this.ComboBox3);
    ...
    bindIt(this.ComboBoxN);
}

Таким образом, вы не рискуете связать какой-либо элемент управления, который не должен быть связанным.Да, много повторений, но ....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...