将集合转换为数据网格

时间:2010-08-23 18:59:53

标签: c# winforms gridview collections

所以我现在有一个列表框中的集合,它显示集合中的每个项目。我想将列表框转换为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 个答案:

答案 0 :(得分: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;

}

我使用自定义Airplane类来展示这个示例,我不知道你的代码是如何构造的,这对我来说更容易。您应该能够相对容易地插入自定义数据类型。

答案 1 :(得分: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;