如何在winforms中将Dictionary绑定到ListBox

ʞᴉɯ*_*ʞᴉɯ 21 c# dictionary listbox winforms

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

Mat*_*ton 39

var choices = new Dictionary<string, string>(); 
choices["A"] = "Arthur"; 
choices["F"] = "Ford"; 
choices["T"] = "Trillian"; 
choices["Z"] = "Zaphod"; 
listBox1.DataSource = new BindingSource(choices, null); 
listBox1.DisplayMember = "Value"; 
listBox1.ValueMember = "Key"; 
Run Code Online (Sandbox Code Playgroud)

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

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

  • 是的,如果您在事后修改基础字典,我不确定您是否可以使用它.字典在BindingList <T>或ObservableCollection <T>之类的更改时不会通知. (5认同)
  • 其他人在创建新的BindingSource(...)时得到ArgumentNull异常? (3认同)