我正在处理C#.net windows应用程序。我正在使用以下命令在我的winform上填充组合框。c#中的组合框选定的值#
cmbEMPType.DataSource = objEntityManager.EmployeeTypes();
cmbEMPType.DisplayMember = "EMPTypeName";
cmbEMPType.ValueMember = "EMPTypeId";
其中objEntityManager.EmployeeTypes();
在会从LINQ到SQL服务器列表的管理器方法。这工作正常。
但当我选择项目表单组合框,然后点击按钮,然后在按钮点击事件我得到cmbEMPType.SelectedValue
为EmpType
返回类型,而不是它的Id。为什么要这样?我不想创建一个更多的EmpType对象。需要简单的选定值。也无法对SelectedIndex保持信心。每次可能会有所不同。
**Edited**
public List<EMPType> EmployeeTypes()
{
List<EMPType> EMPTypeList = null;
try
{
if (CommonDataObject.dataContext.EMPAllTypes.Any())
{
EMPTypeList = CommonDataObject.dataContext.EMPAllTypes.ToList();
}
return EMPTypeList;
}
catch
{
return EMPTypeList;
}
}
编辑
private void btnSave_Click(object sender, EventArgs e)
{
iEMPTypeId = cmbEMPType.SelectedValue;
}
在这里,我必须得到INTE。但要求创建EMPType对象。
你确定你没有使用cmbEMPType.SelectedItem?这通常会得到所选对象(EmpType),而cmbEMPType.SelectedValue将获得'ValueMember'中指定的属性。 –
是的,我确定。我检查了三次。但不幸的是有SelectedValue。实际上你也可以检查它的返回类型。它显示'对象'。 –
它将始终返回对象,因为该值可以是任何类型,因此无论如何您都需要投射该对象。请在我的其他评论中发布更多的代码,我们会看看发生了什么。 –