请问ListBox添加对象

asewv 2012-12-15 05:05:48
一个listBox1,如果它的项并非是同一个类的对象,比如有Perosn类和Student两个类,要求Person的对象显示Name属性值,Student对象显示aaaa属性值。
如何设置项的实际显示的内容?
...全文
307 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
csdnFUCKINGSUCKS 2012-12-15
  • 打赏
  • 举报
回复
研究了下 可以达到lz想要的效果

public partial class Form7 : Form
    {
        public Form7()
        {
            InitializeComponent();
        }

        /// <summary>
        /// Person基类
        /// </summary>
        public class Person
        {
            public string ID { get; set; }
            public string PName { get; set; }
            /// <summary>
            /// 此属性用于设置为显示字段
            /// </summary>
            public virtual string Show
            {
                get
                {
                    return this.PName;
                }
                set
                {
                    this.PName = value;
                }
            }
        }

        /// <summary>
        /// 学生子类
        /// </summary>
        public class Student : Person
        {
            public string aa { get; set; }
            /// <summary>
            /// 重写父类的show属性
            /// </summary>
            public override string Show
            {
                get
                {
                    return this.aa;
                }
                set
                {
                    this.aa = value;
                }
            }
        }

        private void Form7_Load(object sender, EventArgs e)
        {
            //实例化Person类
            Person p = new Person() { ID="1",PName="John"};
            //实例化Student类 这里需要注意要用父类new子类 否则下面的泛型集合无法接受不同类型
            Person s = new Student() { ID="2" , PName="Paul" ,aa="aa"};
            List<Person> li = new List<Person>();
            li.Add(p);
            li.Add(s);
            this.listBox1.DataSource = li;
            this.listBox1.DisplayMember = "Show";
        }
    }
本拉灯 2012-12-15
  • 打赏
  • 举报
回复
引用 4 楼 asewv 的回复:
我是问,如何设置DisplayMember属性
那没法实现,只能以Items.Add的方式加入才行,就按我上面说的。即可。
asewv 2012-12-15
  • 打赏
  • 举报
回复
我是问,如何设置DisplayMember属性
hard_learner 2012-12-15
  • 打赏
  • 举报
回复
这个应该借助于一个列表List<string>,把Perosn Name属性和其他属性的值放如列表中,然后绑定列表
本拉灯 2012-12-15
  • 打赏
  • 举报
回复
Person 类重载 public overwrite void ToString() { return this.Name; } Student 类重载 public overwrite void ToString() { return this.aaaa; }
helloworldysn 2012-12-15
  • 打赏
  • 举报
回复
不太清楚,帮顶~

111,125

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧