【问题标题】:C# - Set two attributes with displaymember in ListBox componentC# - 在 ListBox 组件中使用 displaymember 设置两个属性
【发布时间】: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() 函数。

标签: c# listbox


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-20
    • 2017-10-13
    • 1970-01-01
    • 2016-10-27
    相关资源
    最近更新 更多