如何在winforms中将Dictionary绑定到ListBox

可以将字典绑定到列表框,在列表框和成员属性之间保持同步?

var choices = new Dictionary(); choices["A"] = "Arthur"; choices["F"] = "Ford"; choices["T"] = "Trillian"; choices["Z"] = "Zaphod"; listBox1.DataSource = new BindingSource(choices, null); listBox1.DisplayMember = "Value"; listBox1.ValueMember = "Key"; 

(无耻地从我自己的博客中解脱出来: 将ComboBox绑定到通用词典 。)

这意味着您可以使用SelectedValue来获取ListBox中所选项的相应字典键。

我认为你可以使用事件。 每当ListBox中的某些内容发生变化时,eventHandler方法都会在Dictionary中添加/删除相同的内容。

  label1.Text= listBox1.SelectedIndex.ToString(); if ( listBox1.SelectedItem is KeyValuePair) { var temp1 = (KeyValuePair)listBox1.SelectedItem; label3.Text = temp1.Key.ToString(); label4.Text = temp1.Value.ToString(); }