1

「Person」オブジェクトのリストがあります:

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; }
}

Name(Person) と DocumentCode (Document) の 2 つの列だけを表示するリストを DataGridView に入力する必要があります。

このコードを使用しましたが、必要なものが得られません。

  dgvPersona.DataSource = list;
4

2 に答える 2

2

匿名型オブジェクトを選択して(必須フィールドを投影するため)、次のようにグリッドビューにバインドする必要があります。

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

dgvPersona.DataSource = list;

同様に選択してId、 gridview の非表示の列に保持することもできます。これにより、後でレコードの更新などに使用できます。

于 2013-03-18T05:51:07.623 に答える
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();
于 2013-03-18T05:53:53.143 に答える