C#-使用ListBox组件中的displaymember设置两个属性

C#-使用ListBox组件中的displaymember设置两个属性,c#,listbox,C#,Listbox,我尝试在同一行的ListBox组件中显示“FirstName”和“LastName”属性,如“SMITH Robert”,但当我启动程序时,我有Id属性。问题可能是程序找不到属性“LastName”和“FirstName” 我的客户类别: public class Customer { private int id; private string lastName; private string firstName; public Customer(int id

我尝试在同一行的ListBox组件中显示“FirstName”和“LastName”属性,如“SMITH Robert”,但当我启动程序时,我有Id属性。问题可能是程序找不到属性“LastName”和“FirstName”

我的客户类别:

public class Customer
{
    private int id;
    private string lastName;
    private string firstName;

    public Customer(int id, string lastName, string firstName)
    {
        this.id = id;
        this.lastName = lastName.ToUpper();
        this.firstName = firstName;
    }

    #region Accessors

    public int GetId() { return id; }
    public string GetLastName() { return lastName; }
    public string GetFirstName() { return firstName; }

    public void SetId(int id) { this.id = id; }
    public void SetLastName(string lastName) { this.lastName = lastName; }
    public void SetFirstName(string firstName) { this.firstName = firstName; }

    #endregion

    #region Properties

    public int Id { get { return id; } set { id = value; } }
    public string LastName { get { return lastName; } set { lastName = value; } }
    public string FirstName { get { return firstName; } set { firstName = value; } }

    #endregion
}
我将用于此操作的函数(客户是从Access数据库加载的客户列表(此部分工作)):


您需要DisplayMember信息成为引用类中的现有属性:

public string LastNameFirstName {
  get {
    return lastName + ", " + firstName;
  }
}

如果在类中重写
ToString()
,则可以打印所需内容-只需指定no
DisplayMember
。正如Intellisense将告诉您的那样,
DisplayMember
是一个属性名,而您没有一个名为“LastNameFirstName”的属性名。LarsTech已经给出了解决方案。。。我想我会去睡觉,我可能累了,因为我的问题很愚蠢。。。谢谢你的帮助!两种答案/方法之间存在差异。显式属性也将显示在其他绑定控件(如DGV或道具栅格)中,您可能不希望仅使用列表框。DataGridView在这个项目中是不必要的(感谢上帝!)。我明天尝试重写ToString()函数。
public string LastNameFirstName {
  get {
    return lastName + ", " + firstName;
  }
}