在 selectedIndexChanged 事件上访问组合框的值

我有一个comboBoxwithSelectedItemChanged事件。所以我想提取所选项目的值,例如:


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] 

http://img4.mukewang.com/61da4b73000102c103320188.jpg

但我无法访问cmb.SelectedItem.Row. 为什么我不能做这么简单的事情:cmb.SelectedItem.Row.ItemArray[1]?问候


PIPIONE
浏览 157回答 2
2回答

白衣非少年

我相信您正在将组合框与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}}

UYOU

您选择的项目类型是 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();        }    }}
打开App,查看更多内容
随时随地看视频慕课网APP