您创建一个代表含有2列的行的类:
public class Foo
{
// obviously you find meaningful names of the 2 properties
public string Column1 { get; set; }
public string Column2 { get; set; }
}
然后存储在List<Foo>
:
List<Foo> _items = new List<Foo>();
_items.Add(new Foo { Column1 = "bar", Column2 = "baz" });
如何将列表框的数据源设置为项目?如果我做
ListBox1.DataSource = _items;
我会在列表框中看到list of Objects
而不是其中包含的文字
答案 0 :(得分:4)
要访问公共成员,您只需遍历项目:
foreach(Foo item in _items)
{
// use item
}
由于您的收藏是List<T>
,您还可以按索引访问这些项目:
string col1 = _items[0].Column1; // First item in list's column1
但是,您无法访问Foo
个类私有成员。在Foo
私有中成员的整个目的是阻止来自Foo
类之外的访问。
答案 1 :(得分:1)
覆盖Foo类中的ToString()方法。 ListBox使用它将对象转换为字符串
样品:
class A
{
public int I
{
get;
set;
}
public override string ToString()
{
return "I=" + I.ToString();
}
}
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
listBox1.DataSource = new[]
{
new A { I = 1},
new A { I = 2},
};
}
}
答案 2 :(得分:0)
您正在寻找_items[42]
和/或foreach
循环。