我有一个通用列表,即 List<myclass>
。这里的myclass
包含两个字符串属性。
如何将数据源分配给列表集合?
Mirmal,我猜你的母语不是英语,这个问题不太清楚。 我想你问的是,如果有一个班级列表,如何将该列表绑定到某些东西(例如列表框或组合框)中。
以下是一个简单的代码片段,展示了如何实现...
private void button2_Click(object sender, EventArgs e)
{
List<MyClass> list = new List<MyClass>();
list.Add(new MyClass() { FirstName = "Tim", Lastname = "Jarvis"});
list.Add(new MyClass() { FirstName = "John", Lastname = "Doe" });
listBox1.DataSource = list;
listBox1.DisplayMember = "FirstName"; // or override MyClass's ToString() method.
}
我希望这回答了你的问题。
从一个简单的类开始:
// create a dummy class
public class MyClass
{
private string name;
public MyClass(string name)
{
ItemName = name;
}
public string ItemName
{
get { return name; }
set { name = value; }
}
}
// create a binding list
BindingList<MyClass> my_list = new BindingList<MyClass>();
// add some clssses to the list
my_list.Add(new MyClass("Item #1"));
my_list.Add(new MyClass("Item #2"));
// make the list the datasource for a listbox
listBox1.DataSource = my_list;
// this is the property of the class displayed in the listbox
listBox1.DisplayMember = "ItemName";
System.ComponentModel.BindingList<myClass> bindingList = new System.ComponentModel.BindingList<myClass>(originalList);
您没有为 List<>
对象分配数据源。但是,您可以将 List<>
用作用户界面控件的数据源。
如果您想要实现数据绑定到列表,可以从 List<>
派生并实现 IBindableComponent
接口。但这几乎肯定不是实现您想要完成的功能的最佳方法。
编辑:如果您有一个控件,并且想要检索数据源,并且知道它是一个 List<>
对象,则可以执行以下操作:
List<MyClass> lst = listBox1.DataSource as List<MyClass>;