如何转换" DataGridViewCheckBoxColumn"的值到" DataGridViewComboBoxColumn"

时间:2014-12-10 05:57:31

标签: c# sql-server vb.net winforms datagridview

我有datagridview显示每周工作或不工作。 Fisrt,当我绑定数据集时,它选择自动类型为checkboxColumn,因为数据集中的数据是布尔类型,如下所示。

enter image description here

但是我需要将它改为具有真值和假值的组合框化合物 enter image description here

但它有问题,因为我无法添加项目" true或false"它的错误" datagridviewcomboboxcell值无效"。 而且我不想为商店二的价值制作数据集。这是浪费。


注意:我将逐步解释

这是我填写datagridview的数据库 enter image description here

我使用此查询来创建" weekly_scheduleTableAdapter" 。它会选择每一天和旗帜(1或0)

enter image description here

                SELECT DISTINCT (SELECT  [nonworking_day_flag]
                                 FROM [dbo].[default_nonworking_days]
                                 WHERE [id] =1 ) AS Sun
                               ,
                                 (SELECT  [nonworking_day_flag]
                                  FROM [dbo].[default_nonworking_days]
                                   WHERE [id] =2 ) AS Mon 
                               ,........
                                  ....until Saturday....
                                    ....................
                FROM [dbo].[default_nonworking_days]

结果:enter image description here

我创建" weekly_scheduleTableAdapter"我只是将datagridview绑定到数据集。

enter image description here

它可以将数据填充到gridview(参见上面的第一张图片)。但是,如果我需要将一个单元格更改为组合框,我该怎么办? enter image description here

1 个答案:

答案 0 :(得分:1)

您无法将复选框列转换为组合框列。如果你想要一个组合框列,那么你必须添加一个组合框列。您需要在绑定之前添加列,无论是在设计器中还是在代码中,并设置该列的DataPropertyName属性以告诉它要绑定到哪个数据源列。如果您想要一个例子,look here

编辑:我首先没有阅读您的完整问题,但似乎您知道如何添加列。您不必将该列绑定到DataSetDataTable或其他任何内容。您可以根据需要将其绑定到一组简单的自定义对象,或者甚至可以直接添加到其Items集合中,就像对常规ComboBox控件一样。