[英]Access to value of comboBox on selectedIndexChanged event
我有一個帶有SelectedItemChanged
事件的comboBox
。 所以我想提取所選項目的價值,例如:
private void cboCustomerType_SelectedIndexChanged(object sender, EventArgs e)
{
var db = new SQLConnMgr();
ComboBox cmb = (ComboBox)sender;
var comboSelectedValue = cmb.SelectedItem;
}
問題是我想要的值在cmb.SelectedItem.Row.ItemArray[1]
但我無法訪問cmb.SelectedItem.Row
。 為什么我不能像這樣簡單: cmb.SelectedItem.Row.ItemArray[1]
? 問候
您選擇的項目類型是 DataRowView 因此您需要將 SelectedItem 轉換為:
private void cboCustomerType_SelectedIndexChanged(object sender, EventArgs e)
{
// A combobox with nothing selected will have a SelectedIndex of -1
if (cboCustomerType.SelectedIndex > -1)
{
// Cast SelectedItem to DataRowView
DataRowView item = cboCustomerType.SelectedItem as DataRowView;
if (item != null)
{
// Access the data in column 1 of the selected row
string value = item[1].ToString();
}
}
}
我相信您正在將 combobox 與DataSet
綁定。 所以你可以這樣做:
DataRow dataRow = dataSet.Select(string.Format("FieldName = '{0}'", ComboBox.SelectedValue.ToString()))[0];
if (ComboxBox.SelectedValue != null)
{
// can use fields like
String text = dataRow[“fieldName”].ToString();
}
else
{ //something wrong
}
}
代替
ComboBox cmb = (ComboBox)sender;
寫
ComboBox cmb = sender as ComboBox;
這樣對我有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.