ComboBox не связывать - PullRequest
       25

ComboBox не связывать

0 голосов
/ 12 августа 2011

У меня есть объект класса, как

MYDepartment myDepartment = new MYDepartment();

затем список определяется следующим образом

Ilist<MYDepartment> listDepartment=new Ilist<MYDepartment>();

добавлять объекты в список один за другим

listDepartment.Add(myDepartment);

Теперь я определил DataTable и DataRow

DataTable dtDepartments=new DataTable();
DataRow dr = dtDepartments.NewRow();
dr["DepartmentID"] = myDepartment.DepartmentID;
dr["Name"] = myDepartment.DepartmenrName;
dr["Description"] = myDepartment.DepartmentDescription;
dtDepartments.Rows.Add(dr);

DepartmentForm azhaform = new DepartmentForm();
azhaform.combox1.DataSource = dtDepartments;
azhaform.combobox1.ValueMember = "DepartmentID";
azhaform.combobox1.DisplayMember = "Name";

но в Combobox ничего не показывает муравей. Что не так с моим кодом пожалуйста помогите

Ответы [ 4 ]

1 голос
/ 12 августа 2011

Пожалуйста, укажите для свойства DisplayMember значение DepartmenrName.

Как это:

   azhaform.combobox1.DisplayMember = "DepartmenrName";

Вы уверены, что это ничего не показывало? Он должен был показать только один элемент, поскольку вы добавили только одну строку в исходную таблицу.

Редактировать: Извините за ошибку, которую я опубликовал выше. Я слишком привык к заполнению List <> :). Я попробовал ваш код, и он отлично работает. Проблема должна быть с чем-то еще. Пожалуйста, отмените мой голос:)

0 голосов
/ 12 августа 2011

Возможно, это не то, что вам нужно, но я обычно архивирую это, используя BindingSource , просто нажмите на смарт-тег в ComboBox и установите флажок Использовать элементы привязки данных затем нажмите Добавить источник данных проекта и выберите Объект в форме источника данных и выберите класс MYDepartment .

Wizard

Это автоматически добавит BindingSource компонент в вашу форму (в моем VS он называется mYDepartmentBindingSource ).

Затем снова нажмите на смарт-тег ComboBox и сделайте следующее:

ComboBox Property

Теперь вы можете добавить данные:

  mYDepartmentBindingSource.Add(new MYDepartment() { DepartmentID=1, DepartmenrName="Abc" } );
  mYDepartmentBindingSource.Add(new MYDepartment() { DepartmentID = 2, DepartmenrName = "Bca" });
0 голосов
/ 12 августа 2011

Кажется, в вашем коде довольно много ошибок, поэтому я не уверен, стоит ли воспринимать это слишком буквально (например, «combox1» против «combobox1»), но я сразу вижу одну ошибку:устанавливают источник данных в выпадающем списке, прежде чем вы укажете значения ValueMember и DisplayMember.Я не проверял, не вызовет ли это вашу проблему, но определенно кажется, что это неправильно.

0 голосов
/ 12 августа 2011

Хотя я не проверял это с моим редактором, но это кажется небольшой проблемой, так как я изменил его, как показано ниже ...

    DepartmentForm azhaform = new DepartmentForm();
    azhaform.combobox1.DataSource = dtDepartments;
    azhaform.combobox1.ValueMember = "DepartmentID";
    azhaform.combobox1.DisplayMember = "Name";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...