将列表数组中的值绑定到列表框
Posted
技术标签:
【中文标题】将列表数组中的值绑定到列表框【英文标题】:Bind values from a list array to listbox 【发布时间】:2011-05-15 18:09:53 【问题描述】:任何人都可以给出一个简短的例子来将一个值从列表数组绑定到 c#.net 中的列表框
【问题讨论】:
【参考方案1】:这取决于你的列表数组是怎样的。
让我们从一个简单的示例开始:
List<string> listToBind = new List<string> "AA", "BB", "CC" ;
this.listBox1.DataSource = listToBind;
这里我们有一个字符串列表,它将在列表框中显示为项目。
否则,如果您的列表项更复杂(例如自定义类),您可以这样做:
例如,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
值而不是整个类实例。
注意
取消设置DisplayMember
,您将获得列表条目的ToString()
结果作为ListBox
项目的显示文本。
【讨论】:
有没有办法绑定,但仍然读回整个类实例?假设我想检索选择的实际文本,而不是 Id(同时保持 Id 作为值成员),我可以这样做吗? @McAdam331:是的,只是不要将任何内容设置为ValueMember
。这样listBox1.SelectedValue
属性将是MyClass
类型。
太棒了!我希望你仍然使用你的帐户,我真的可以将它应用到我正在处理的项目中。以上是关于将列表数组中的值绑定到列表框的主要内容,如果未能解决你的问题,请参考以下文章