Вызовите DataBindings.Clear () для нескольких элементов управления с одинаковыми именами. - PullRequest
2 голосов
/ 03 февраля 2009

Изначально отправил сообщение на другом форуме, надеюсь, я смогу найти здесь немного больше помощи:)

Привет, ребята,

Я уверен, что это довольно простой вопрос, но я плохо знаком с программированием и C #. Я считаю, что мне нужно очистить привязки данных для нескольких элементов управления, и в настоящее время они имеют:

            lblTableValue1.DataBindings.Clear();
            lblTableValue2.DataBindings.Clear();
            lblTableValue3.DataBindings.Clear();
            lblTableValue4.DataBindings.Clear();
            lblTableValue5.DataBindings.Clear();
            lblTableValue6.DataBindings.Clear();
            lblTableValue7.DataBindings.Clear();

Это не может быть лучшим способом сделать это, не так ли? Мне также нужно установить все эти текстовые значения на "", могу ли я как-то сгруппировать их и вызвать очистку для всей группы?

Большое спасибо заранее G

Ответы [ 2 ]

5 голосов
/ 03 февраля 2009
foreach(Control c in this.Controls)
{
    if(c.Name.StartsWith("lblTableValue"))
    {
        c.DataBindings.Clear();
    }
}

Это может сделать работу. Или, если вы более пурист:

foreach(Control c in new Control[]
    {
        lblTableValue1,
        lblTableValue2,
        etc
    })
{
    c.DataBindings.Clear();
}
0 голосов
/ 03 февраля 2009

В этом сценарии я считаю, что лучше всего включить элементы управления, которыми я хочу манипулировать, в какой-то контейнер, скажем, Panel. Тогда итерация становится легкой:

private void SetLabelText() 
{ 
  foreach (Control c in Panel1.Controls) 
  { 
    if (c is Label && c.ID.StartsWith("lblTableValue"))
    { 
      Label lbl = c as Label; 
      lbl.Text = string.Empty;
      lbl.DataBindings.Clear();
    } 
  } 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...