C# 将集合转换为数据网格

C# 将集合转换为数据网格,c#,winforms,gridview,collections,C#,Winforms,Gridview,Collections,所以我现在在列表框中有一个集合,它显示集合中的每个项目。我想将列表框转换为gridview,以便添加复选框和其他下拉列表。我找不到一个教程来解释如何做到这一点 对于示例“我的集合”有2个项目,每个项目有多个列 [0]747喷气式飞机 [0]旅客人数:417 [1] 第一次飞行:1967年 [0]A380 [0]旅客人数:853 [1] 首飞:2005年 现在,我的列表框使用以下代码 foreach (AMAPnr.Airplane airElement in AMAPnr.Airpl

所以我现在在列表框中有一个集合,它显示集合中的每个项目。我想将列表框转换为gridview,以便添加复选框和其他下拉列表。我找不到一个教程来解释如何做到这一点

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

  • [0]747喷气式飞机
    • [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?

更新:OP已澄清他们选择了错误的标记,这实际上是针对WinForms的

如果在表单中添加一个
DataGridView
,然后将以下代码放入表单codebehind中,它会起到一种效果:

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;

}
私人舱飞机
{
公共字符串AirplaneName{get;set;}
公共int PassengerAmt{get;set;}
公共int FirstFlight{get;set;}
}
公共表格1()
{
初始化组件();
var planes=新列表();
添加(新飞机(){AirplaneName=“747jet”,PassengerAmt=417,FirstFlight=1967});
dataGridView1.DataSource=平面;
}
我使用了一个定制的飞机类来展示这个例子,我不知道你的代码是如何构造的,这样对我来说比较容易。您应该能够相对轻松地插入自定义数据类型。

public IEnumerable getItems(Planes)
    public IEnumerable<AMAPnr.Airplane> getItems(Planes)
    {
        foreach (AMAPnr.Airplane airElement in Planes)
        {
            yield return airElement;
        }
        yield break;
    }
{ foreach(飞机中的飞机airElement) { 回程元件; } 屈服断裂; }
然后只需执行
myDataGrid.DataSource=getItems(AMAPnr.Airplanes)


您也可以只做
myDataGrid.DataSource=lstPlanes

我错误地将asp.net添加为我的标记之一,这对窗口窗体有效吗?@Spooks,刚刚尝试过,效果很好,不需要
.DataBind()
line=)@Rob谢谢,我想这是数据绑定,只是不知道如何让它显示出来。(标题/填充列)@Spooks-看看我为WinForms提供的示例,它显示集合中的所有列/行,而无需配置任何内容。显然,如果你定义列和任何映射,你会有一个更简洁的UI,但是,如果你想要改变元素的通知,请考虑使用绑定列表而不是列表。