
但是,DataBindings只能绑定一个字段,而绑定多个字段时典型的如列表控件Combobox、ListBox控件,需要键值对,这时就需要指定DataSource(实现IList接口就行),然后指定ValueMember、DisplayMember 。
所以,如果是下拉列表,你只想绑定一个字段,用DataBindings可以,想绑定两个字段
用combobox.DataSource = 数据源
combobox.DisplayMember = 对应显示字段名
combobox.ValueMember = 对应存储字段名
object val = combobox.SelectedValue
string txt = combobox.Text
SelectedIndex、SelectedItem表示选中了哪项目,也可以设置combobox.SelectedIndex = 0 或
直接设置 combobox.SelectedValue = "一个已存在的值"或 combobox.Text = "一个已存在的文本"
如果是绑定的,一定要设置的是一个在绑定在已存在的项。
例如有一个部门表的DataTable,部门ID是一个字段,用于唯一标识一个部门ID,部门名称是另一个字段,用于唯一标识ID对应的部门名称
绑定如下:
this.ComboBox1.DataSource = 部门表 //只要实现了IList接口就可以
this.ComboBox1.DisplayMember="部门名称"//显示中文,方便用户选择 对应WebForm的DataTextField
this.ComboBox1.ValueMember="部门ID" //绑定与选择对应的另一个值
需要着重说明的时,如果你有一个类Item如有两个属性:A、B,同时你做了ItemCollection类用来表示多个Item,绑定时:
this.ComboBox1.DataSource = myItemCollection
this.ComboBox1.DisplayMember="A"
this.ComboBox1.ValueMember="B"
如果数据不是从数据库中读取出来,而是从集合中绑定。 本例中仅列出Dictionary这个类。
代码:
Dictionary<int, string>mydiction = new Dictionary<int, string>()
mydiction.Add(2, "张三")
this.listBox1.DataSource = new BindingSource(mydiction, null)
this.listBox1.DisplayMember = "Value"
this.listBox1.ValueMember = "Key"
你应该说的是winform中的下拉列表控件吧!如果这些选项是固定的,可以直接在控件的属性面板中找到Items属性中去添加选项;
如果需要代码添加,就可以使用 控件名.Items.Add("选项") 的语句来添加;
如果是数据源中取出来的数据,可以使用数据绑定的方式添加;
控件名.DataSource=数据源 的语句来添加选项。
在form窗体中添加一个DataGridView控件,选中DataGridView控件,单击如图所示的小三角形,选中“Add Column”(添加列),在d出的对话框中的“Type”类型后选择“DataGridViewComboxColumn”即可
如果您想该列可编辑,可再次单击小三角形,然后选择“Edit Column”(编辑列),在d出的对话框中,将该数据列的DisplayStyle属性设为:ComoBox即可
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)