我想将DataTable
绑定到BindingSource
,然后绑定到GridControl
。创建DataTable
后,如何添加 checkedit 控件?
我在设计器中有一个Devexpress windows应用程序,
这个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,
}
);
不幸的是,这似乎不起作用。有什么想法吗?
答案 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;