Доступ к значению comboBox для события selectedIndexChanged - PullRequest
0 голосов
/ 08 сентября 2018

У меня есть comboBox с SelectedItemChanged событием. Поэтому я хочу извлечь значение выбранного элемента, например:

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] enter image description here

Но я не могу получить доступ к cmb.SelectedItem.Row. Почему я не могу сделать так просто, как: cmb.SelectedItem.Row.ItemArray[1]? Привет

Ответы [ 2 ]

0 голосов
/ 08 сентября 2018

Я полагаю, что вы связываете комбинированный список с 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
}
}
0 голосов
/ 08 сентября 2018

Выбранный тип элемента - 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();
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...