0
  class A{
  int a;
  B b;
  }
  class B{
  int c,d;
  {
  .
  .
  .
  List<A>list = new List<A>();
  Populating list with object....

  BindingSource bindingSource = new BindingSource();
  dataGridView1.DataSource = bindingSource;
  dataGridView1.Update();
  bindingSource.DataSource = list;

新しいクラスを作成したり、クラス A から新しいクラスにデータをコピーしたりせずに、dataGridView1 に int a、c、d の値を含む 3 つの列を強制的に表示することは可能ですか?

4

2 に答える 2

0

新しいクラスを作成したり、クラス A から新しいクラスにデータをコピーしたりせずに、dataGridView1 に int a、c、d の値を含む 3 つの列を強制的に表示することは可能ですか?

DataTable を使用できます。列を設定し、リストを繰り返し処理して、各 A の各要素を DataTable の新しい行として追加します。次に、DataTable を DGV の DataSource として使用します。

リストビューを使用しても同じことが達成されるように思えます。

もう 1 つの方法は、b をプライベートにし、A にパブリック プロパティを持たせて、b のプロパティをエコーすることです。このようにして、必要なすべてのプロパティが最初のレベルになります

于 2013-07-07T01:42:04.233 に答える