【问题标题】:Turning a collection into a datagrid将集合变成数据网格
【发布时间】:2011-04-02 19:44:33
【问题描述】:

所以我现在在列表框中有一个集合,它显示集合中的每个项目。我想把列表框变成一个网格视图,这样我就可以添加复选框和其他下拉菜单。我找不到解释如何执行此操作的教程。

例如,我的收藏有 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());
}

我将如何将其更改为网格视图?

【问题讨论】:

    标签: c# winforms gridview collections


    【解决方案1】:

    更新: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 类来展示这个例子,我不知道你的代码是如何结构的,这样对我来说更容易。您应该能够相对轻松地插入您的自定义数据类型。

    【讨论】:

    • 我错误地将 asp.net 添加为我的标签之一,这适用于窗口窗体吗?
    • @Spooks,刚刚试了一下,效果很好,不需要.DataBind() 行 =)
    • @Rob 谢谢,我认为它的数据绑定,只是不知道如何让它显示。 (标题/填充列)
    • @Spooks - 查看我为 WinForms 放置的示例,它无需配置任何内容即可显示集合中的所有列/行。显然,如果您确实定义了列和任何映射,那么您将拥有一个更整洁的 UI =)
    • 如果您想要通知元素更改,请考虑使用 BindingList 而不仅仅是 List
    【解决方案2】:
        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;

    【讨论】:

      猜你喜欢
      • 2011-04-07
      • 2011-06-28
      • 1970-01-01
      • 2021-09-28
      • 2013-10-05
      • 1970-01-01
      • 2011-02-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多