【发布时间】:2011-02-14 12:26:51
【问题描述】:
我正在开发 C#.net windows 应用程序。我正在使用以下方法在我的 winform 上填充组合框。
cmbEMPType.DataSource = objEntityManager.EmployeeTypes();
cmbEMPType.DisplayMember = "EMPTypeName";
cmbEMPType.ValueMember = "EMPTypeId";
objEntityManager.EmployeeTypes(); 在将列表从 Linq 获取到 sql server 的管理器方法中。这工作正常。
但是当我选择项目表单组合框并单击按钮然后在按钮单击事件中我得到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;
}
这里我必须了解一下。但要求创建 EMPType 对象。
【问题讨论】:
-
您确定您没有使用 cmbEMPType.SelectedItem 吗?这通常会获取所选对象 (EmpType),而 cmbEMPType.SelectedValue 将获取“ValueMember”中指定的属性。
-
是的,我确定。我检查了三次。但不幸的是有SelectedValue。事实上你也可以检查它的返回类型。它显示“对象”。
-
它总是返回对象,因为值可以是任何类型,所以无论如何你都需要转换它。请按照我在其他评论中的要求发布更多代码,我们会看看发生了什么。
-
“要求创建 EMPType 对象”是什么意思?你有错误吗?如果是这样,请在此处发布完整的错误消息..
标签: c# winforms combobox selectedvalue