代码之家  ›  专栏  ›  技术社区  ›  nboulfroy

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

  •  2
  • nboulfroy  · 技术社区  · 7 年前

    我尝试在列表框组件中的同一行显示“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
    }
    

    我将用于此操作的函数(customers是从 通道 数据库(此部分工作)):

    // 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";
    
    1 回复  |  直到 7 年前
        1
  •  4
  •   LarsTech    7 年前

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

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