c# - 带有 checkBoxEdit 列的 DevExpress XtraGrid 控件

标签 c# winforms devexpress xtragrid

我有一个 DevExpress XtraGrid控件具有三列和一个未绑定(bind)的 checkBoxEdit 列,供用户在从网格中删除项目时进行选择。我能够在 xtraGrid 上添加 checkBoxEdit。但是,我不知道如何删除选定列表的主键。任何想法都受到高度赞赏。谢谢

最佳答案

我相信你可以使用以下方法:

void InitGrid() {
    gridControl1.DataSource = new List<Person> { 
        new Person(){ ID = 0 }, 
        new Person(){ ID = 1 }, 
        new Person(){ ID = 2 }
    };
    gridView.Columns["ID"].Visible = false;
    gridView.Columns.Add(new DevExpress.XtraGrid.Columns.GridColumn()
    {
        UnboundType = DevExpress.Data.UnboundColumnType.Boolean,
        Caption = "Mark as Deleted",
        FieldName = "IsDeleted",
        Visible = true,
    });
}
IDictionary<int, object> selectedRows = new Dictionary<int, object>();
void gridView1_CustomUnboundColumnData(object sender, CustomColumnDataEventArgs e) {
    int id = (int)gridView.GetListSourceRowCellValue(e.ListSourceRowIndex, gridView.Columns["ID"]);
    if(e.IsGetData) 
        e.Value = selectedRows.ContainsKey(id);
    else {
        if(!(bool)e.Value)
            selectedRows.Remove(id);
        else selectedRows.Add(id, e.Row);
    }
}
void OnDelete(object sender, System.EventArgs e) {
    //... Here you can iterate thought selectedRows dictionary
}
//
class Person {
    public int ID { get; set; }
    public string Name { get; set; }
    public string Age { get; set; }
}

相关帮助主题:

关于c# - 带有 checkBoxEdit 列的 DevExpress XtraGrid 控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10347505/

相关文章:

c# - 如何防止 XtraGrid TextEdit 在将光标移动到内容之外时失去焦点

C# MDI - 如何防止滚动条?

C# 正则表达式端口验证 49152 到 65535

c# - 如何检测在后面的代码中单击了哪个按钮?

c# - 新窗口打开后的位置

c# - 将变量从 Controller 传递到 Devexpress GridView 列 EndCallBack JS

asp.net - 使用 devexpress HtmlEditor 控件有 DXR.axd 抛出 404

c# - C# 中的高性能 TCP 服务器

c# - 如何在全局 C# 中为 winform 中的所有文本框设置背景色?

winforms - 使用Windows窗体在脚本终止后数分钟内锁定PowerShell ISE