【发布时间】:2018-01-12 23:47:25
【问题描述】:
我尝试在我的 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 数据库加载的客户列表(这部分工作)):
// Define where is from data.
lbxCustomers.DataSource = customers;
// Value show in listbox.
lbxCustomers.DisplayMember = "LastNameFirstName";
// Value when row is selected in listbox.
lbxCustomers.ValueMember = "Id";
【问题讨论】:
-
如果你在课堂上覆盖
ToString(),你可以打印你想要的——只要不指定DisplayMember。正如 Intellisense 会告诉您的那样,DisplayMember是一个属性名称,而您没有命名为“LastNameFirstName” -
LarsTech 已经给出了解决方案...我想我要睡觉了,我可能累了,因为我的问题很愚蠢...谢谢您的帮助!
-
2 个答案/方法之间存在差异。显式属性也将显示在您可能不想要的其他绑定控件中,例如 DGV 或道具网格
-
我只需要使用一个列表框。在这个项目中不需要 DataGridView(感谢上帝!)。我明天尝试覆盖 ToString() 函数。