c #datagridview具有不同列的不同数据源

时间:2011-05-10 04:45:14

标签: c# datasource datagridviewcolumn

我有一个datagridview,它有多个文本列和一个组合框列。我需要为组合框列表的iems指定数据源,为其他文本列指定另一个数据源。我尝试了以下示例代码,但它不起作用。

dgv1.DataSource = DataSet1.Tables[0];
string[] managerList = Array.ConvertAll(DataSet2.Select(), row => (string)row[0]);
comboboxcolumn1.DataSource = managerList;

managerList数组包含要填充到组合框中的条目,但它们从不显示。

那是因为我不能为组合框及其父数据网格视图提供单独的数据源吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

我已使用以下代码进行了检查,并且工作正常

string[] arr = "This Should Get Displayed".Split(); //managerList in your case           
dataGridView1.DataSource = MyData(false);
(dataGridView1.Columns["Column1"] as DataGridViewComboBoxColumn).DataSource = new BindingSource(arr, null); // Bind to the column of grid

您可以尝试将其指定为数据网格视图的一列。

这将在我的组合框中显示 space 上的文本。

当您使用字符串数组时,无需为列指定显示成员

修改

如果您有DataTable,也可以这种方式进行

(dataGridView1.Columns["Column1"] as DataGridViewComboBoxColumn).DataSource= datatable;
(dataGridView1.Columns["Column1"] as DataGridViewComboBoxColumn).DisplayMember="columnname";
(dataGridView1.Columns["Column1"] as DataGridViewComboBoxColumn).ValueMember="columnname";