0

我有一个Person对象列表(从数据库加载),我称之为PersonList. 类有Person四个属性Person_Id(PK)Name和。FamilyAddress

我想将此列表的上下文绑定到ComboBox. 此外,我想在 ComboBox 中显示每个人的NameFamily(而不是Person_Idor Address)。另一方面,如果最终用户选择任何人,我想获得 ComboBox 所选值的 Person_Id(PK) 。

我怎样才能做到这一点?另外我想知道我是PersonList自动删除 ComboBox 更新的任何项目还是我应该自己手动更新?

4

1 回答 1

0

向您的 Person 类添加一个只读属性,该属性返回所需的字符串

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);
       .......
    }
}
于 2013-05-11T17:17:25.953 回答