日期:2014-05-17  浏览次数:21002 次

请教LsitBox的DisplayMember属性
Class Person
{
public string name{get;set;}
public string aaa{get;set;}
}

往listbox1中添加了Person对象,并先设置了listbox1的DisplayMember = "name"

然后,做一个按钮,在点击事件中设置listbox1的DisplayMember = "aaa"

可是,实际显示的怎么不变化呢,怎么不是aaa属性的值呢,而是对象的Tostring()字符串呢?
------解决方案--------------------
那应该是你的代码有问题
------解决方案--------------------

  public partial class Work
    {
        public int? Id { get; set; }
        public string Name { get; set; }
    }

    public partial class Works
    {
        private static List<Work> works = new List<Work>();
        public static List<Work> GetWorks
        {
            get
            {
                works.Clear();
                works.Add(new Work() { Id = 1, Name = "程序员"});
                works.Add(new Work() { Id = 2, Name = "项目经理" });
                works.Add(new Work() { Id = 3, Name = "技术总监" });
                return works;
            }
        }
    }



 private void Form2_Load(object sender, EventArgs e)
        {
            this.listBox1.DataSource = Works.GetWorks;
            this.listBox1.DisplayMember = "Name";
            this.listBox1.ValueMember = "Id";
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.listBox1.DisplayMember = "Id";
        }

------解决方案--------------------
上面是我测试的代码,没有问题可以切换 DisplayMember  属性