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

然后使用具有您指定的这三列的 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 是 ComboBox 列,您可以在该列的 DataSource 属性中指定选项列表,因此该列表与 Mine 对象类是分开的。

于 2013-05-09T20:58:22.503 回答