WinForm中,将DataGridView中的某一行某一列设置为下拉列表时候单独绑定数据源

时间:2022-08-16 19:31:59
在VS2010中,当我们使用WinForm的时候,如果在DataGridView中设置一个下拉列表列,也就是DataGridViewComboBoxColumn,如图:

在这里边可以自动设置这一列的绑定数据源DataSource以及DisplayMember和ValueMember,后来发现设置了这一列的数据源后,在DataGridView中任何一行,这一列的数据源都是原先设定的那个,不可以改变,这就跟我当时的初衷有所违背,因为我是想在每行内容不同,下拉列表这列所显示的内容也不同。在网上收拾了好多资料,最后终于在同学的帮助下完成了这段代码:

foreach (DataRow row2 in tableBatch.Rows)
                    {
                        ((DataGridViewComboBoxCell)dgvRetailDetail.Rows[n - 1].Cells["Colre_batch"]).Items.Add(row2["batch_id"]);
                    }

这里我用的是Items的添加,当然你也可以设置DataSource。

需要注意的就是关键词DataGridViewComboBoxCell,而不是我们想当然的DataGridViewComboBoxColumn。