C#中ComboBox能否设定多个ValueMenber?

2024-11-12 00:28:00
推荐回答(4个)
回答1:

一般是这样绑定和取值:
comboBox1.DataSource = student; //绑定student表为数据源
comboBox1.DisplayMember = "name";
comboBox1.ValueMember = "id";
string name = comboBox1.SelectedText;//取DisplayMember值
string id = comboBox1.SelectedValue.ToString();//取ValueMember值
DataTable table1 = this.comboBox1.DataSource as DataTable;
int rowIndex = this.comboBox1.SelectedIndex;
string str1 = table1.Rows[rowIndex]["tel"].ToString();//取绑定表中的其它值

回答2:

DisplayMember设置为对应得name和tel valueMember设置为id
你一个combobox列表既要显示name又要显示tel吗?这样不太可能,要显示俩个不如用dataview或者别的控件啊!

回答3:

你的数据源如果是数据集,可以通过视图实现返回id和name + tel。如果是对象集,你只需要再添加一个字符串类型的属性,返回name + tel就行了。

回答4:

不应该把DisplayMember设置为id。
一般的做法是ValueMember绑定到关键字字段,用户选择后,根据选择的value(key),回到表(改表最好用缓存表)中,利用value定位到某行,再取其他字段的值。