可変サイズのオブジェクトリスト(ここではレコード)をバインドする方法ここではFieldと呼ばれる)をDataGridViewに送り、内部リストの各Fieldオブジェクトが(Valueプロパティを介して)セルにバインドされ、外部リストの各Recordオブジェクトが行にバインドされます。 考えられるのは、各レコードオブジェクトの内部リストの項目数に基づいて、可変数の列でDataGridViewを動的に作成することです。プログラムでいっぱいに別の可変サイズのオブジェクトリストを含むオブジェクトの可変サイズのリストをC#のDataGridViewにバインドする方法
public List<Record> Records{ get; set; }
レコードリスト:私はのようなものを持っている
public class Field
{
public String Name { get; set; }
public String Value { get; set; }
}
メインプログラムで:
public class Record
{
public List<Field> Fields { get; set; }
}
とFieldクラス: はここに私のレコードクラスのコードですリスト内の各レコードは、フィールドリストに同じ量のオブジェクトがあります。今度は、このデータをDataGridViewにバインドし、外部リストの各RecordオブジェクトがDataGridView内のセルであるテーブルの行として表示する方法でバインドします。 これは可能ですか?もしそうなら、どうしたらいいですか?
foreach (Field field in this.Records.First().Fields)
{
dgv.Columns.Add(field.Name, field.Name);
}
次に使用:
これは、データバインディングを使用することで可能ではありません。あなたはループ 'Field''sとカラムを作成する必要があります - @ Ofirの答えを見てください。フィールドのリストの代わりにクラスを使用できない理由は何ですか? – Fabio