C#-使用ListBox组件中的displaymember设置两个属性
我尝试在同一行的ListBox组件中显示“FirstName”和“LastName”属性,如“SMITH Robert”,但当我启动程序时,我有Id属性。问题可能是程序找不到属性“LastName”和“FirstName” 我的客户类别: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
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()
,则可以打印所需内容-只需指定noDisplayMember
。正如Intellisense将告诉您的那样,DisplayMember
是一个属性名,而您没有一个名为“LastNameFirstName”的属性名。LarsTech已经给出了解决方案。。。我想我会去睡觉,我可能累了,因为我的问题很愚蠢。。。谢谢你的帮助!两种答案/方法之间存在差异。显式属性也将显示在其他绑定控件(如DGV或道具栅格)中,您可能不希望仅使用列表框。DataGridView在这个项目中是不必要的(感谢上帝!)。我明天尝试重写ToString()函数。
public string LastNameFirstName {
get {
return lastName + ", " + firstName;
}
}