如何以编程方式在devexpress中将checkedit控件添加到gridview

时间:2012-03-01 15:08:01

标签: c# winforms datatable devexpress gridcontrol

我想将DataTable绑定到BindingSource,然后绑定到GridControl。创建DataTable后,如何添加 checkedit 控件?

我在设计器中有一个Devexpress windows应用程序,

  1. GridControl
  2. 的BindingSource
  3. 这个GridControl的数据源是bindingsource1。

    我在page_Load事件中有以下内容,

            DataTable dt = new DataTable();
            dt.Columns.Add("FirstName");
            dt.Columns.Add("Age");
    
            dt.Rows.Add("rambo", 60);
            dt.Rows.Add("Arnie", 35);
            bindingSource1.DataSource = dt;
            gridView1.RefreshData();
    
            gridView1.Columns.Add(
                new DevExpress.XtraGrid.Columns.GridColumn()
                {
                    Caption = "Selected",
                    ColumnEdit = new RepositoryItemCheckEdit() { },
                    Visible = true,
                }
                );
    

    不幸的是,这似乎不起作用。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

实际上,我认为你很亲密。请尝试以下更改:

        DataTable dt = new DataTable();
        dt.Columns.Add("FirstName");
        dt.Columns.Add("Age");

        dt.Rows.Add("rambo", 60);
        dt.Rows.Add("Arnie", 35);
        bindingSource1.DataSource = dt;
        gridControl1.DataSource = bindingSource1;
        gridView1.RefreshData();

        gridView1.Columns.Add(
            new DevExpress.XtraGrid.Columns.GridColumn()
            {
                Caption = "Selected",
                ColumnEdit = new RepositoryItemCheckEdit() { },
                VisibleIndex = 0,
                UnboundType = DevExpress.Data.UnboundColumnType.Boolean
            }
            );

请注意,我更改的只是可见索引并设置了未绑定的列类型。从技术上讲,我相信您需要的是将visibleIndex属性设置为您希望它出现的位置。

答案 1 :(得分:0)

如果您希望网格中的列具有复选框作为编辑控件,则可以通过在DataTable中添加包含布尔值的列来实现此目的。以下适用于我。

DataTable dt = new DataTable();
dt.Columns.Add("FirstName", typeof(System.String));
dt.Columns.Add("Age", typeof(System.Int32));
dt.Columns.Add("Selected", typeof(System.Boolean));

dt.Rows.Add("rambo", 60, true);
dt.Rows.Add("Arnie", 35, false);

gridView1.OptionsBehavior.AutoPopulateColumns = true;
bindingSource1.DataSource = dt;
gridControl1.DataSource = bindingSource1;