WinForms开发人员使用复选框快速绑定真/假列

时间:2019-04-12 07:28:23

标签: c# winforms devexpress

我正在处理 Windows窗体项目,并且在XtraGrid.GridControl中有一些数据,其中包含以下列:

IDDescriptionTo Process

我正在从数据库中加载这些数据,列To Process包含一个boolean字段。

我希望使用一个复选框代替当前的10值,如果该值为1则将被选中,如果该值为{{1} }。

如何使用0实现这一目标?


这是我到目前为止所做的:

  • Dev Express 16的形式导入了一个DevExpress.XtraGrid.GridControl
  • 添加了三列DesignIDDescription
  • 使用以下方法从后面的代码中填充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; } } 中的值是10

2 个答案:

答案 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;
        }
    }