我有一个ComboBox,我从实体框架模型中填充它。
ComboBox.DataSource = (from x in _context.myTable
where x.isActive == true
select new {
x.Name,
x.ID
}
).Distinct().ToList();
ComboBox.DisplayMember = "Name";
ComboBox.ValueMember = "ID";
ComboBox.SelectedIndex = -1;
ComboBox.Invalidate();
问题是:每次 Combox 选择更改时,我都想检索 myTable (SQL Server 表( 的 ID(PK 标识号(列后面的信息,但 ComboBox.SelectedValue 返回了错误的标识号。实际上,它返回索引 + 1。
private void ComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
Console.WriteLine("ComboBox.SelectedValue=" + ComboBox.SelectedValue);
}
你能指教吗?
我也遇到了同样的问题,我找到了一个非常简单的解决方案。绑定组合框可能存在问题,如果可以尝试使用此代码来绑定组合框。
using (DatabaseEntities db_entity = new DatabaseEntities())
{
comboBox1.DataSource = db_entity.TableName.ToList();
comboBox1.ValueMember = "ID";
comboBox1.DisplayMember = "Name";
}
您可以检索 ValueMember(在您的情况下为"ID"(。
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (comboBox1.SelectedIndex > 0)
{
int _id = Convert.ToInt32(comboBox1.SelectedValue);
}
}