我正在處理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。實際上你也可以檢查它的返回類型。它顯示'對象'。 –
它將始終返回對象,因爲該值可以是任何類型,因此無論如何您都需要投射該對象。請在我的其他評論中發佈更多的代碼,我們會看看發生了什麼。 –