将列表数组中的值绑定到列表框

时间:2010-11-25 14:33:34

标签: c# winforms data-binding listbox

任何正文都可以给出一个简短的例子,用于将列表数组中的值绑定到c#.net

中的列表框

1 个答案:

答案 0 :(得分:12)

这取决于列表数组的方式。

让我们从一个简单的样本开始:

List<string> listToBind = new List<string> { "AA", "BB", "CC" };
this.listBox1.DataSource = listToBind;

这里我们有一个字符串列表,它将在列表框中显示为项目。

alt text

否则,如果您的列表项更复杂(例如自定义类),您可以这样做:

例如,MyClass定义如下:

public class MyClass
{
    public int Id { get; set; }
    public string Text { get; set; }
    public MyClass(int id, string text)
    {
        this.Id = id;
        this.Text = text;
    }
}

这是绑定部分:

List<MyClass> listToBind = new List<MyClass> { new MyClass(1, "One"), new MyClass(2, "Two") };
this.listBox1.DisplayMember = "Text";
this.listBox1.ValueMember = "Id"; // optional depending on your needs
this.listBox1.DataSource = listToBind;

您将看到一个列表框,仅显示您商品的文字。 同时将ValueMember设置为您班级的特定属性会使listBox1.SelectedValue包含所选的Id值,而不是整个班级实例。

N.B。
DisplayMember取消设置后,您将获得列表条目的ToString()结果作为ListBox项目的显示文字。

alt text