在基于键的字典中显示成员(comboBox)

时间:2017-02-13 09:38:20

标签: c# .net dictionary combobox

我想在comboBox中显示几个不同的字典结构。

在JumpType.cs中:

var myline = d3.svg.line()    
  .x(function(d) { return x(d.date); })
  .y(function(d) { return y(d.y); });

svg.append("path")
  .data(dataset)
  .attr("class", "line")
  .attr("d", myline(dataset));

字典结构将如下所示:

 public SortedDictionary<int, List<string>> jumpCombination = new SortedDictionary<int, List<string>>(); 

我在我的UI中创建了两个组合框,如下所示:

Key    Values
1      Flygande
       EjFlygande
2      Bak
       Pik
       Test
3      ...

在Form1.cs中

Select Key:      _____________
                |   ComboBox  |
                --------------      __________
                 _____________      |   OK   |
Select Value:   |   ComboBox  |     ----------
                --------------

我如何根据所选键选择相应的值?

提前致谢。 正如您在图像中看到的那样,键显示(1),但我无法从其下方的组合框中选择任何内容。  comboBox

1 个答案:

答案 0 :(得分:2)

我会将Dictionary初始化为UI类本身的一部分。

 public SortedDictionary<int, List<string>> jumpCombination;
    public Form1() {
        InitializeComponent();
        jumpCombination = new SortedDictionary<int, List<string>>();
        // do whatever needed to populate the dictionary here
        // now add the DataSource as the Keys of your dictionary which are integers
        comboBoxJumpComboKey.DataSource = new BindingSource(jumpCombination.Keys, null);
    } 

然后,双击您的UI设计器中的comboBoxJumpComboKey,将会出现一种新方法,请填写:

private void comboBoxJumpComboKey_SelectedIndexChanged(object sender, EventArgs e) {
        comboBoxJumpComboValue.DataSource = jumpCombination[int.Parse(comboBoxJumpComboKey.Items[comboBoxJumpComboKey.SelectedIndex].ToString())];
    }