2015-10-26 6 views
0

Я пытаюсь заполнить список по методу. Я бы хотел сделать это, я буду использовать этот метод несколько раз в своем приложении.Заполнение списка по методу

Вот как это работает:

DataTable table = ru.getDataTable("Select UserID, User From tblUser Where tblUser.Archived = false"); 

      lstBenutzer.DataSource = table; 
      lstBenutzer.ValueMember = "UserID"; 
      lstBenutzer.DisplayMember = "User"; 

Я хотел бы сделать это следующим образом:

lstBenutzer = getListbox("Select UserID, User From tblUser Where tblUser.Archived = false", "User"); 

private ListBox getListbox(string query, string tabelle) 
     { 
      ListBox box = new ListBox(); 
      DataTable table = ru.getDataTable(query); 

      box.DataSource = table; 
      box.ValueMember = tabelle + "ID"; 
      box.DisplayMember = tabelle; 

      return box; 
     } 

Я не получаю ошибку он просто не работает. Мой список "lstBenutzer" остается пустым ...

Что я делаю неправильно?

+0

Вы отлаживали код? – Akansha

ответ

2

Когда вы создаете новый экземпляр элемента управления ListBox, он заменит созданный элемент управления, созданный в представлении дизайна. Вместо создания нового экземпляра вы можете передать весь объект вашего элемента управления ListBox в свой метод.

private void getListbox(ListBox listBox, string query, string tabelle) 
{ 
      DataTable table = ru.getDataTable(query); 

      listBox.DataSource = table; 
      listBox.ValueMember = tabelle + "ID"; 
      listBox.DisplayMember = tabelle; 
} 

А вы можете назвать это так:

getListbox(lstBenutzer, "Select UserID, User From tblUser Where tblUser.Archived = false", "User"); 

Вы также можете использовать метод расширения, чтобы сделать его доступным на все объекты типа ListBox управления

+0

Спасибо большое! отлично работает –

0

вы дали tabella члена значения ListBox в + ID и в вашем запросе нет такого поля tabella. Элемент значения должен быть уникальным, как вы знаете. По этой причине предыдущий код работает

Смежные вопросы