Как добавить элементы в Combobox из Entity Framework?
У меня есть такой код:
private void FillCombobox()
{
using (InventoryEntities c = new InventoryEntities(Properties.Settings.Default.Connection))
{
List<Customer> usepurposes = c.Customers.ToList();
DataTable dt = new DataTable();
dt.Columns.Add("id");
dt.Columns.Add("name");
foreach (Customer usepurpose in usepurposes)
{
dt.Rows.Add(usepurpose.id, usepurpose.name);
}
comboBox1.ValueMember = dt.Columns[0].ColumnName;
comboBox1.DisplayMember = dt.Columns[1].ColumnName;
comboBox1.DataSource = dt;
}
}
И я вызываю этот метод в:
private void frmBillIn_Load(object sender, EventArgs e)
{
FillCombobox();
}
Когда я запускаю свое приложение, combobox не будет отображать клиентов (элементы).
Просто покажите модель.Заказчик
В чем проблема??
Я пробовал много решений, но ни одно из них не работает.
3 ответов:
Вам не нужно смешивать два мира-Мир Entity Framework и мир наборов данных. Свяжите напрямую:
using (InventoryEntities c = new InventoryEntities(Properties.Settings.Default.Connection)) { comboBox1.DataSource = c.Customers; comboBox1.ValueMember = "id"; comboBox1.DisplayMember = "name"; }Если это не работает, то имя столбца может отличаться от " name "("имя", возможно?).
Если вы используете "using", вам нужно поместить ToList() для оценки перед тесным соединением. use ItemsSource, ValueMember и DisplayMember чувствительны к регистру
using (InventoryEntities c = new InventoryEntities()) { comboBox1.ItemsSource = c.Customers.toList(); comboBox1.ValueMemberPath = "Id"; comboBox1.DisplayMemberPath = "Name"; }Надеюсь, что это поможет.
См. следующий пример. (ссылки на имена = > DAL=уровень доступа к данным, projectEntities = имя набора сущностей) Надеюсь, это поможет..
List itemsList = new List ();
using (DAL.projectEntities en = new DAL.projectEntities()) { foreach (var item in en.tableName.Where(a => a.tableName != null).ToList()) { itemsList.Add(item.tableFieldName); } } comboboxTable.ItemsSource = itemsList;
Comments