组合框中的索引逻辑?

时间:2012-07-25 06:32:21

标签: c# combobox indexing

我有combobox1和comboox2,在combobox1中,我的元素是A,B,C和组合框a,b,c,d,e,f ......我使用属性screeen添加了这些元素(我的意思是不用代码)

       combobox1                     combobox2
    ---------------               ---------------
           A                            a
           B                            b
           C                            c
                                        d
                                        e
                                        f

相关的a,b,c和B相关的b,c和C相关的d,e,f。

当我选择“A”时,我想看到a,b,c;当选择“B”时,只需b,c等。

我可以给出combobox1项目的索引号吗?当我选择“A”时我想看到的只是“a”,“b”,“c”元素(我的意思是0,1,2个数字) 当我选择“B”时,只有b,c(我的意思是1,2个数字)。 我想这样做,如果没有索引号我必须与编写代码建立所有关系。我在下面编写了一些代码,但它还有很长的路要走。

索引逻辑更好,确定组合框中是否有索引逻辑:)

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
  {
     comboBox2.Items.Clear();
     switch (comboBox1.SelectedItem.ToString())
      {
        case "A":
           comboBox2.Items.AddRange(new string[] { "a", "b", "c" });
           break;

        case "B":
           comboBox2.Items.AddRange(new string[] { "b", "c" });
           break;
      }
      comboBox2.SelectedIndex = -1;
   }

1 个答案:

答案 0 :(得分:2)

您可以通过索引到结构来避免case语句。

Dictionary<string, List<string>> items = 
      new Dictionary<string, List<string>>() { {"A", new List<string> {"a", "b","c"} } };

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
  {
     combobox2.DataSource = ltems[comboBox1.SelectedItem.ToString()];
     combobox2.DataBind();
   }