我有一个datagridview,它有多个文本列和一个组合框列。我需要为组合框列表的iems指定数据源,为其他文本列指定另一个数据源。我尝试了以下示例代码,但它不起作用。
dgv1.DataSource = DataSet1.Tables[0];
string[] managerList = Array.ConvertAll(DataSet2.Select(), row => (string)row[0]);
comboboxcolumn1.DataSource = managerList;
managerList数组包含要填充到组合框中的条目,但它们从不显示。
那是因为我不能为组合框及其父数据网格视图提供单独的数据源吗?
提前致谢。
答案 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";