我正在处理 Windows窗体项目,并且在XtraGrid.GridControl
中有一些数据,其中包含以下列:
ID
,Description
,To Process
我正在从数据库中加载这些数据,列To Process
包含一个boolean
字段。
我希望使用一个复选框代替当前的1
和0
值,如果该值为1
则将被选中,如果该值为{{1} }。
如何使用0
实现这一目标?
这是我到目前为止所做的:
Dev Express 16
的形式导入了一个DevExpress.XtraGrid.GridControl
; Design
,ID
和Description
; 使用以下方法从后面的代码中填充To Process
GridControl
:
DataSource
现在,我的表已填充,但列private void LoadTableData()
{
// initialization
gcTable.DataSource = null;
string query = " SELECT id, description, to_process FROM test_table ";
DataTable dt = Utils.ExecuteQuery(query);
if (dt != null && dt.Rows.Count > 0)
{
gcTable.DataSource = dt;
}
}
中的值是1
和0
。
答案 0 :(得分:2)
在您的To Process
列的RepositoryItemCheckEdit属性中分配一个ColumnEdit,并在必要时设置其 ValueChecked 和 ValueUnchecked 属性。更多信息here。
答案 1 :(得分:1)
您可以使用gridView1_CustomRowCellEdit
事件来更改网格视图单元格的存储库。如果数据列是布尔类型,则网格控制单元将是复选框。
dt.Columns["to_process"].DataType = typeof(bool);
这是CustomRowCellEdit事件的示例代码。
void gridView1_CustomRowCellEdit(object sender, DevExpress.XtraGrid.Views.Grid.CustomRowCellEditEventArgs e)
{
if (e.Column.FieldName == "to_process")
{
DevExpress.XtraEditors.Repository.RepositoryItemCheckEdit repChk = new DevExpress.XtraEditors.Repository.RepositoryItemCheckEdit();
e.RepositoryItem = repChk;
}
}