我有一个的DevExpress XtraGrid中有三列的控制和未绑定checkBoxEdit栏为用户删除从电网项目时选择。 我可以添加在XtraGrid中的checkBoxEdit。 但是,我没有任何想法,我怎么能得到所选定的主键(一个或多个)将被删除。 任何想法是高度赞赏。 谢谢
Answer 1:
我相信你可以用下面的办法:
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; }
}
相关帮助主题:
- ColumnView.CustomUnboundColumnData事件
- ColumnView.GetListSourceRowCellValue方法
文章来源: DevExpress XtraGrid Control with checkBoxEdit column