InvalidArgument=значение ' 0 'недопустимо для'SelectedIndex'. Имя параметра: SelectedIndex

я получаю вышеуказанную ошибку, когда я пытаюсь этот код. Я пытался дать просто мой код но бесполезно. (По умолчанию)

вот мой XML-файл

ошибка в cmbProduct_SelectedIndexChanged событие.

        cmbProduct --> combobox
        cmbBrand   --> combobox

глобальные

        DataSet dsUpdate = new DataSet();

Form_load

        dsUpdate.ReadXml(@".....stock.xml");
        cmbProduct.DataSource = dsUpdate.Tables[0]
            .DefaultView.ToTable(true, "productname");//.DefaultView;
        cmbProduct.DisplayMember = "productname";
        cmbProduct.SelectedIndex = 0;

cmbProduct_SelectedIndexChanged

        cmbBrand.Items.Clear();
        foreach (DataRow Row in dsUpdate.Tables[0].Select("productname='" + cmbProduct.Text + "'"))
        {
            //cmbBrand.SelectedIndex = i;
            cmbBrand.Items.Add(Row["brandname"].ToString());
            //i++;
        } 
        cmbBrand.SelectedIndex = 0; /*ERROR*/  

пожалуйста, помогите
спасибо заранее.

3 ответов


вы также можете попробовать это. Перед установкой combobox DataSource установите его BindingContext

cmbProduct.BindingContext = this.BindingContext;

у меня была та же ошибка. я думаю, что у этой ошибки есть некоторые причины. поэтому моя ошибка связана с " set DataSource в другом потоке не работает"

пример

//Run in another thread
myComboBox.DataSource = myDataSource; //not set

исправить с

myComboBox.Invoke(new Action(() => myComboBox.DataSource = myDataSource));