我有一个Person
对象列表(从数据库加载),我称之为PersonList
。 Person
类有四个属性Person_Id(PK)
,Name
,Family
和Address
。
我想将此列表的上下文绑定到ComboBox
。另外,我想在ComboBox中显示每个人的Name
和Family
(不是Person_Id
或Address
)。另一方面,如果最终用户选择任何人,我想获得所选ComboBox值的Person_Id(PK)。
我该如何设法做到这一点?另外我想知道我是否自动删除了PersonList
ComboBox更新的任何项目,或者我应该自己手动更新?
答案 0 :(得分:0)
向Person类添加一个readonly属性,该属性返回所需的字符串
class Person
{
public int Person_ID {get;set;}
public string name {get;set;}
public string family {get;set;}
public int address {get;set;}
public string name_family { get {return this.ToString();}}
public override string ToString()
{
return string.Format("{0} {1}", this.name, this.family);
}
}
现在将组合框的属性DisplayMember
分配给只读属性,将ValueMember属性分配给Person类的Person_ID。
comboBox1.DataSource = PersonList;
comboBox1.DisplayMember = "name_family";
comboBox1.ValueMember = "id";
现在在组合框SelectedIndexChange
事件中,您可以从SelectedItemValue中检索ID
private void comboBox1_SelectedIndexChanged(object sender, System.EventArgs e)
{
if(comboBox1.SelectedValue != null)
{
int personID = Convert.ToInt32(comboBox1.SelectedValue);
.......
}
}