ListBox无法显示BindingList数据,而是显示对象名称

时间:2016-03-13 18:06:14

标签: c# listbox

所以我正在尝试创建一个Windows窗体应用程序,我想创建一个Transaction Windows窗体。

所以我想创建某种购物车,只要用户按下“添加”按钮就会出现在列表框中

我试图通过使用BindingList将购物车显示到列表框,问题是列表框本身显示了BindingList项的对象

代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Pertemuan03
{
    public partial class Transaction : Form
    {
        class Cart{
           public string ProductID { get; set; }
            public string name { get; set; }
            public int quantity  { get; set; }

        };
        BindingList<Cart> shoppingList = new BindingList<Cart>();
        public Transaction()
        {
            InitializeComponent();
            listBox1.FormattingEnabled = true;
            listBox1.DataSource = shoppingList;


        }

        private void button1_Click(object sender, EventArgs e)
        {
            shoppingList.Add(new Cart {ProductID = comboBox1.SelectedItem.ToString(),name= textBox1.Text,quantity = (int)numericUpDown1.Value});
            listBox1.FormattingEnabled = true;
            listBox1.DataSource = null;
            listBox1.DataSource = shoppingList;
        }


    }
}
它显示像这样 Problem

1 个答案:

答案 0 :(得分:0)

如果我的问题正确,您必须设置显示成员属性。 (cfr MSDN

        BindingList<TestType> testList = new BindingList<TestType>();
        testList.Add(new TestType() { NameToDisplay = "MyName" });
        myListBox.DataSource = testList;
        myListBox.DisplayMember = "NameToDisplay";