【问题标题】:How to add a checkedit control to a gridview in devexpress programmatically如何以编程方式将 checkedit 控件添加到 devexpress 中的网格视图
【发布时间】:2012-03-20 02:07:33
【问题描述】:

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

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

  1. 网格控制
  2. 绑定源

这个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,
            }
            );

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

【问题讨论】:

    标签: c# winforms datatable devexpress gridcontrol


    【解决方案1】:

    其实我觉得你们很亲近。尝试以下更改:

            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 属性设置为您希望它出现的位置。

    【讨论】:

      【解决方案2】:

      如果您希望网格中的列有一个复选框作为编辑控件,您可以通过在 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;
      

      【讨论】:

      • 嘿,肯,谢谢。不幸的是,这不是我所追求的。结果很好,但我需要单独添加 CheckEdit 控件。虽然努力
      猜你喜欢
      • 1970-01-01
      • 2016-04-22
      • 2013-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-04
      • 1970-01-01
      相关资源
      最近更新 更多