0

C# 4.0 と WinForms を使用しています。DataGridView をこのように設定しようとしています

[CheckBox]  [TextColumn]  [ComboBoxColumn]

これは、SQL Server インポート/エクスポート ツールに似たメニュー用です。チェックボックスは、テーブルが転送されるかどうかを教えてくれます。TextColumn はソース テーブル名です。ComboBoxColumn は、宛先データベース内のテーブルのリストです。

[Transfer]  [SourceTable]  [DestinationTable]
    X       MyTableSource  MyTableDest

MyTableDest は (TableA、TableB、TableC) などから選択できるリストであり、自分の名前を入力することもできます。

私はthis.dataGridView.DataSource = myBindingListを試しました.mybindingListには次のようなカスタムオブジェクトがあります

public class Mine {
   public bool Transfer { get; set;}
   public string Source { get; set;}
   public List<string> Destination { get; set; }
}

完全な解決策は必要ありません。これを達成する方法についての指示だけです

4

1 に答える 1

1

Mine クラスは目的地のリストを保持しておらず、単一の目的地のみを保持しているため、クラスは次のようになります。

public class Mine {
  public bool Transfer { get; set; }
  public string Source { get; set; }
  public string Destination { get; set; }
}

次に、指定した 3 つの列を持つ DataGridView コントロールを使用して、これを実行するための簡単な例を示します。

Column1.DataPropertyName = "Transfer";
Column2.DataPropertyName = "Source";
Column3.DataPropertyName = "Destination";
Column3.DataSource = new List<string>() { "aaa", "bbb", "ccc" }; 

List<Mine> grid = new List<Mine>();
grid.Add(new Mine() { Transfer = true, Source = "xxx", Destination = "bbb" });
grid.Add(new Mine() { Transfer = false, Source = "yyy", Destination = "aaa" });
grid.Add(new Mine() { Transfer = true, Source = "zzz", Destination = "ccc" });

dataGridView1.DataSource = grid;

Column3 は、その列の DataSource プロパティでオプションのリストを指定する ComboBox 列であるため、リストは Mine オブジェクトのクラスから分離されています。

于 2013-05-09T20:58:22.503 に答える