填充数据网格视图

时间:2013-03-18 05:46:48

标签: c# winforms .net-3.5

我有一个“人物”对象列表:

public class Person
{
   public Int32 Id { get; set; }
   public String Name { get; set; }
   public Document oDocument  { get; set; }
}

还有Document类。

public class Document
{
   public String Type { get; set; }
   public String Code { get; set; }
}

我需要使用该列表填充DataGridView,只显示两列:Name(Person)和DocumentCode(Document)

我使用了这段代码,但我得不到我想要的东西。

  dgvPersona.DataSource = list;

2 个答案:

答案 0 :(得分:2)

您需要选择anonymous type对象(以投影必填字段),然后将其绑定到您的gridview,如:

var list = (from p in persons
            select new 
                   {
                   Name = p.Name,
                   DocumentCode = p.Document.Code
                   }).ToList();

dgvPersona.DataSource = list;

您也可以选择Id并将其保存在gridview中的隐藏列中,以便稍后您可以将其用于记录更新等。

答案 1 :(得分:1)

试试这个:

  public class Person
        {
            public Int32 Id { get; set; }
            public String Name { get; set; }
            public Document oDocument { get; set; }
        }
        public class Document
        {
            public String Type { get; set; }
            public String Code { get; set; }
        }

     List<Person> list = new List<Person>();
     dgvPersona.DataSource= list.Select(data => new { data.Name, data.oDocument.Code }).ToList();