2010-08-23 57 views
2

所以我有一个集合,我现在在列表框中显示集合中的每个项目。我想将列表框变成一个gridview,所以我可以添加复选框和其他下拉菜单。我无法找到解释如何执行此操作的教程。将集合转换成数据网格

对于示例我的集合有2个项目,每个项目有多个列。

  • [0] 747的Jet
    • [0]客运量:417
    • [1]首先飞行:1967
  • [0] A380
    • [0 ]乘客数量:853
    • [1]第一次飞行:2005年

现在我的列表框使用此代码

foreach (AMAPnr.Airplane airElement in AMAPnr.Airplanes) 
{ 
    lstPlanes.Items.Add(
     "PassengerAmount: " + airElement.Passenger + " First Flight:" + 
     airElement.FirstFlight.ToString()); 
} 

我会如何改变成一个gridview吗?

回答

2

更新:OP澄清说他们选择了错误的标签,而这实际上是用于WinForms。

如果添加DataGridView到窗体,然后把下面的代码在你的代码隐藏的形式,它的工作原理治疗:

private class Airplane 
{ 
    public string AirplaneName { get; set; } 
    public int PassengerAmt { get; set; } 
    public int FirstFlight { get; set; } 
} 

public Form1() 
{ 
    InitializeComponent(); 

    var planes = new List<Airplane>(); 
    planes.Add(new Airplane() { AirplaneName = "747 Jet", PassengerAmt = 417, FirstFlight = 1967 }); 

    dataGridView1.DataSource = planes; 

} 

我用一个自定义的飞机类来说明这个例子中我不确切知道你的代码是如何构建的,这对我来说更容易。您应该能够相对容易地插入自定义数据类型。

+1

我错误地添加asp.net为我的标签之一,将这项工作的窗口形式? – Spooks 2010-08-23 19:12:39

+0

@Spooks,只是试了一下,它工作的一种享受,不需要'.DataBind()'行=) – Rob 2010-08-23 19:16:44

+1

@Rob谢谢,我想它的数据绑定,只是不知道如何让它显示。 (头文件/填充列) – Spooks 2010-08-23 19:21:24

1
public IEnumerable<AMAPnr.Airplane> getItems(Planes) 
    { 
     foreach (AMAPnr.Airplane airElement in Planes) 
     { 
      yield return airElement; 
     } 
     yield break; 
    } 

然后就去做myDataGrid.DataSource = getItems(AMAPnr.Airplanes);

你也可以这样做myDataGrid.DataSource = lstPlanes;