C# 使用linq join查询绑定时combobox出现问题

C# 使用linq join查询绑定时combobox出现问题,c#,winforms,linq,C#,Winforms,Linq,我正在使用LINQ Join查询绑定组合框。下面是我的代码: var list = (from a in context.tbl_Products join c in context.tbl_CurrentStock on a.ProductID equals c.ProductID where c.Qty > 0 select new { ProductID =

我正在使用LINQ Join查询绑定组合框。下面是我的代码:

var list = (from a in context.tbl_Products
            join c in context.tbl_CurrentStock on a.ProductID equals c.ProductID
            where c.Qty > 0
            select new
            {
                ProductID = a.ProductID,
                ProductName = a.ProductName
            }).ToList();

cmbProduct.DataSource = list;
cmbProduct.ValueMember = "ProductID";
cmbProduct.DisplayMember = "ProductName";
cmbProduct.SelectedIndex = -1;
表格详情: tbl_产品:产品ID、产品名称

Data in table

1,ABC
2,BCA
3,CDA
tbl_当前库存:库存ID、产品ID、数量

Data in table:

1,1,5
2,2,10
3,3,50
我正在使用cmbProduct.SelectedValue,如下所示:

int ProductID = Convert.ToInt32(cmbProduct.SelectedValue);
var Product = context.tbl_Products.Single(o => o.ProductID == ProductID);
在这里之前,一切都很好。在组合框中,我选择了“ABC”,但我得到的是
cmbProduct。selectedvalue
值为2,而不是1。同样,如果我选择第二个产品获取值为3而不是2,则它不会给出所选值,而是给出列表中的第一个值。有什么问题吗?这太傻了,吃了我的头。当我不使用联接查询(如果我只绑定一个表中的数据)时,这工作正常
提前感谢

将combobox的排序属性更改为false后,问题得到解决。Combobox正在排序产品名称,而不是产品ID。这引起了问题

将combobox的排序属性更改为false后,问题得到解决。Combobox正在排序产品名称,而不是产品ID。这引起了问题

旁注:您在
list
上调用了
.ToList()
两次,您使用什么事件来初始化组合框?请提供两个表的数据。。。否则就不清楚了。谢谢。请更新您的问题,以显示您是如何设置cmbProduct的。SelectedValue这与LINQ无关。旁注:您在
列表中调用了
.ToList()
两次。您使用什么事件初始化组合框?为两个表提供数据。。。否则会变得不清楚。谢谢。请更新您的问题,以显示您如何设置cmbProduct.SelectedValue这与LINQ无关。