"SelectedItem" 更改时如何更新我的第二个组合框

How i can update my second combobox when "SelectedItem" is changed

我在一个表单中有两个组合框,第一个组合框显示每个 "mark" 卡车,第二个可能显示每个 "mark" 的型号。例如,如果标记是沃尔沃,第二个组合框可能显示 "FH, FH6 ...",否则如果标记是 "MAN",第二个组合框可能显示 "TGX, TGX 38" ...

我尝试做一个循环来刷新我的第二个组合框,每次第一个组合框都被更改。

  while (comboBox1.SelectedIndex == -1)
            {
                comboBox2.Items.Clear();
                if (comboBox1.SelectedIndex == 1)
                {


                    comboBox2.DisplayMember = "Modelo";
                    comboBox2.DataSource = d.Tables["Modelos-MAN"].DefaultView;


                }
                if (comboBox1.SelectedIndex == 2)
                {

                    comboBox2.DisplayMember = "ModeloV";
                    comboBox2.DataSource = d.Tables["Modelos-VOLVO"].DefaultView;
                    comboBox2.Refresh();
                }
            }

            if (comboBox1.SelectedIndex==1)
            {


                comboBox2.DisplayMember = "Modelo";
                comboBox2.DataSource = d.Tables["Modelos-MAN"].DefaultView;


            }
            if(comboBox1.SelectedIndex == 2)
            {

                comboBox2.DisplayMember = "ModeloV";
                comboBox2.DataSource = d.Tables["Modelos-VOLVO"].DefaultView;
                comboBox2.Refresh();
            }

碰巧如果我 select "MAN",它显示 "MAN" 模型然后如果我改变,select "Volvo",第二个组合框显示我 "System.Data.DataRowView"。

这是怎么回事?我该如何解决?

注意:我也有生成卡车 "mark" 和 "models" 的方法:

  public DataSet LoadMarkAndModel()
        {


            var marcas = new string[6];
            marcas[0] = "Marca ...";
            marcas[1] = "MAN";
            marcas[2] = "Volvo";//Linha 2 coluna 2
            marcas[3] = "DAF";
            marcas[4] = "Renault";//Linha 4 coluna 2
            marcas[5] = "Mercedes-Benz";
            var modelosMAN = new string[7];
            var modelosVolvo = new string[5];

            modelosMAN[0] = "TGX";
            modelosMAN[1] = "TGX D38";
            modelosMAN[2] = "TGX EfficientLine 2";
            modelosMAN[3] = "TGS";
            modelosMAN[4] = "TGA";
            modelosMAN[5] = "TGA-WW";
            modelosMAN[6] = "TGM";


            modelosVolvo[0] = "FH16";
            modelosVolvo[1] = "FH";
            modelosVolvo[2] = "FM";
            modelosVolvo[3] = "FE";
            modelosVolvo[4] = "FL";


            DataSet data = new DataSet("DataSetOfTrucks");
            DataTable table = new DataTable("Marcas");
            DataColumn colunaID = new DataColumn("ID", typeof(int));
            DataColumn colunaMarca = new DataColumn("Marca", typeof(string));
            //table.Columns.Add("Description", typeof(string));
            table.Columns.Add(colunaID);
            table.Columns.Add(colunaMarca);



            for (int i = 0; i < marcas.Length; i++)
            {

                DataRow manyMark = table.NewRow();
                manyMark["ID"] = i + 1;
                manyMark["Marca"] = marcas[i];
                table.Rows.Add(manyMark);


            }
            data.Tables.Add(table);


            DataTable modelsTable = new DataTable("Modelos-MAN");
            DataColumn modelsIDParent = new DataColumn("IDP", typeof(int));
            DataColumn modelo = new DataColumn("Modelo", typeof(string));
            modelsTable.Columns.Add(modelsIDParent);
            modelsTable.Columns.Add(modelo);

            int m = 0;


            while (m<modelosMAN.Length)
            {
                DataRow manyModelsMAN = modelsTable.NewRow();
                manyModelsMAN["IDP"] = 1;
                manyModelsMAN["Modelo"] = modelosMAN[m];
                modelsTable.Rows.Add(manyModelsMAN);
                m++;
                //if (m > modelosMAN.Length)
                //    break;

            }
            data.Tables.Add(modelsTable);



            ////vOLVO
            DataTable modelsTableVOLVO = new DataTable("Modelos-VOLVO");
            DataColumn modelsIDParentVOLVO = new DataColumn("IDPVolvo", typeof(int));
            DataColumn modeloVolvo = new DataColumn("ModeloV", typeof(string));

            modelsTableVOLVO.Columns.Add(modelsIDParentVOLVO);
            modelsTableVOLVO.Columns.Add(modeloVolvo);

            int count = 0;

            while (count < modelosVolvo.Length)
            {
                DataRow manyModelsVolvo = modelsTableVOLVO.NewRow();
                manyModelsVolvo["IDPVolvo"] = 2;
                manyModelsVolvo["ModeloV"] = modelosVolvo[count];
                modelsTableVOLVO.Rows.Add(manyModelsVolvo);
                count++;


            }
            data.Tables.Add(modelsTableVOLVO);


            return data;
        }
comboBox1_SelectedIndexChanged()
{
 comboBox2.DataSource =null;

 if (comboBox1.SelectedIndex==1)
            {
                comboBox2.DataSource = d.Tables["Modelos-MAN"];
                comboBox2.ValueMember="Modelo";
                comboBox2.DisplayMember = "Modelo";
            }
 if(comboBox1.SelectedIndex == 2)
            {
                comboBox2.DataSource = d.Tables["Modelos-VOLVO"];
                comboBox2.DisplayMember = "ModeloV";
                comboBox2.ValueMember = "ModeloV";

            }
}