组合框上的数据绑定

dev*_*ull 3 c#

我将项目添加到组合框中,如下所示:

   readonly Dictionary<string, string> _persons = new Dictionary<string, string>();
   ....
   //<no123, Adam>, <no234, Jason> etc..
   foreach (string key in _persons.Keys)
   {
        //Adding person code
        cmbPaidBy.Items.Add(key);                   
   }
Run Code Online (Sandbox Code Playgroud)

我希望通过显示字典中的值(即名称)使组合框更具可读性.但我需要根据用户输入从数据库中提取人员代码(no123等).

这样做的正确方法是什么?如何将值和键绑定到组合框项?

Cas*_*jne 5

DisplayMember和ValueMember属性适合您:

cmbPaidBy.DataSource = new BindingSource(_persons, null); 
cmbPaidBy.DisplayMember = "Value"; 
cmbPaidBy.ValueMember = "Key"; 
Run Code Online (Sandbox Code Playgroud)

这里有更深入的信息,这里是BindingSource类

BindingSource组件有很多用途.首先,它通过在Windows窗体控件和数据源之间提供货币管理,更改通知和其他服务,简化了表单上对数据的绑定控制