使用DevExpress DataGrid的C#DataSet CheckBox列

时间:2010-03-11 09:33:08

标签: c# gridview dataset checkbox devexpress

方案

我有一个DevExpress DataGrid,它绑定到C#中的DataSet。 我想填充每个数据集行以包含第一列中的字符串和第二列中的复选框。我的下面的代码不能完全按照我的要求工作,我不确定为什么.....

守则

正如您所看到的,我已经声明了一个数据集,但是当我尝试将新的复选框对象传递给第二列时,它只显示该复选框的系统名称。

        DataSet prodTypeDS = new Dataset();
        DataTable prodTypeDT = prodTypeDS.Tables.Add();
        prodTypeDT.Columns.Add("MurexID", typeof(string));
        prodTypeDT.Columns.Add("Haganise",typeof(CheckBox));

        //WHY DOES THIS NOT WORK? 
        //(Displays "System.Windows.Forms.CheckBox, CheckState: 0")
        //Instead of a checkbox.
        CheckBox c = new CheckBox();
        prodTypeDS.Tables[0].Rows.Add("Test",c);
        //This doesn't work either....
        prodTypeDS.Tables[0].Rows.Add("Test",c.CheckState);

......我希望这只是因为它是一个DevExpress数据网格....

2 个答案:

答案 0 :(得分:4)

为什么在Checkbox使用DataSet列?

您应该尝试在bool中添加DataSet列,将DataSet绑定到网格时,它会自动使用复选框显示商品值。

答案 1 :(得分:1)

当您的数据表中没有bool列时,您也可以手动/在代码中设置列的编辑器。

代码示例:
假设您添加一个名为“fCol”的devex网格列。 checked =“YES”的值,unchecked =“NONO”;

        GridColumn fCol = gridView1.Columns.Add();
        RepositoryItemCheckEdit fCheckEdit = new RepositoryItemCheckEdit();
        fCheckEdit.ValueChecked = "YES";
        fCheckEdit.ValueUnchecked = "NONO";
        fCol.ColumnEdit = fCheckEdit;
        fCol.FieldName = "Haganise";

当然你也可以在设计师中做到这一点。