C# 数据绑定组合框的SelectedValue将SelectedValue设置为null

C# 数据绑定组合框的SelectedValue将SelectedValue设置为null,c#,winforms,linq,combobox,C#,Winforms,Linq,Combobox,我试图为一些结构有点奇怪的遗留DB表创建一个接口,但我一直在设置组合框的selectedValue cboSubProject.Visible = true; cboSubProject.DataSource = linqDB.SubProjects; cboSubProject.ValueMember = "intSubProjectKey"; cboSubProject.DisplayMember = "DisplayName"; 稍后,我尝试按如下方式设置组合框的选定值: cboSubP

我试图为一些结构有点奇怪的遗留DB表创建一个接口,但我一直在设置组合框的selectedValue

cboSubProject.Visible = true;
cboSubProject.DataSource = linqDB.SubProjects;
cboSubProject.ValueMember = "intSubProjectKey";
cboSubProject.DisplayMember = "DisplayName";
稍后,我尝试按如下方式设置组合框的选定值:

cboSubProject.SelectedValue = record.subProjectKey;
cboSubProject.SelectedValue = 3;
我没有使用子项目实体,因为目前我手头没有子项目实体,只是它是来自另一个对象的IntSubjectKey,但我甚至无法按如下方式设置所选值:

cboSubProject.SelectedValue = record.subProjectKey;
cboSubProject.SelectedValue = 3;
但是,我可以查询linqDB.SubProjects并获得带有record.subProjectKey值的行,但我希望只使用我手头的值,并且考虑到最终结果,cboSubProject.SelectedValue等于3。任何澄清都会有帮助

注:
我已尝试将值和显示成员移动到数据源行上方,但没有效果。

将值分配给
SelectedValue
时会发生什么情况?使用SelectedValue的唯一方法是:
cboSubProject.SelectedValue=linqDB.SubProjects.First(s=>s.intSubProjectKey==record.subProjectKey).intSubProjectKey
但是值与record.subProjectKey相同(在本例中,两者都是3),我只是好奇为什么不能直接设置值。我有其他组合框,基本上做同样的事情。