Winforms绑定问题涉及结构

时间:2011-06-16 22:46:57

标签: c# winforms data-binding collections struct

你好编码员我还有另一个涉及winforms数据绑定的问题。我设置了一个测试应用程序,其中我有一个由名为CustomerInfo的结构组成的绑定列表。我已将列表框控件绑定到此列表并旋转一个线程以将CustomerInfo项添加到绑定列表。

namespace dataBindingSample {

public partial class Form1 : Form {

    public BindingList<CustomerInfo> stringList = new BindingList<CustomerInfo>();
    public Thread testThread;

    public Form1() {

        InitializeComponent();

        stringList.AllowNew = true;
        stringList.RaiseListChangedEvents = true;
        listBox1.DataSource = stringList;

        testThread = new Thread(new ThreadStart(hh_net_retask_request_func));
        testThread.Priority = ThreadPriority.Normal;

    }

    private void hh_net_retask_request_func() {

        int counter = 1;
        while (true) {


            CustomerInfo cust = new CustomerInfo();
            cust.Name = "Customer "+ counter.ToString();

            this.Invoke((MethodInvoker)delegate {

                stringList.Add(cust);

            });

            counter++;
            Thread.Sleep(1000);

        }

    }

    private void Form1_Load(object sender, EventArgs e) {
        testThread.Start();
    }

}

public struct CustomerInfo {

    public string Name {

        set {

            name = value;
        }

        get {
            return name;
        }

    }

    private string name;
  }
}

我在列表框中看到的是结构dataBindingSample.CustomerInfo的名称,而不是结构的属性。我的印象是非复杂绑定占据了第一个可用属性。

请告诉我我做错了什么。

谢谢,

1 个答案:

答案 0 :(得分:5)

您需要向CustomerInfo类添加ToString()覆盖,以返回您在列表框中显示的内容,或者在设置listBox1.DisplayMemer = "Name"之前设置DataSource