GridControl绑定List对象一般是为了获取焦点行时直接获得该行代表的List对象,或者为了实现嵌套表格,对第一中情况,起始不用绑定List,绑定DataTable也可以实现获取对应List对象
如果直接绑定List对象,列标题就是T的各属性名,一旦转义(如Select(c => new { 查询条件 = c.queryString, 数量 = c.resAirlines.Count }).ToList();),就成了自定义对象,GetFocusedRow无法获取到原T对象
解决方法:(起始也适用于绑定的DataTable)
进行转义时,将原对象作为object也进行完整转义,如 var res = FlightBLL.queryPool.Select(c => new { obj=c, 查询条件 = c.queryString, 数量 = c.resAirlines.Count }).ToList(); 这里的obj=c就将完整对象转义成了obj
这样,即保留了原对象,也可灵活组织显示形式和列标题
绑定时,即可用List绑定,也可用DataTable绑定,如下面两种绑定方法都ok:
CmmFrm.BestFitGridViewColumnsWidth(gdcQuery, res, 0, true, false);
CmmFrm.BestFitGridViewColumnsWidth(gdcQuery, res.ToDataTable(), 0, true, false);
将obj列隐藏,gdvQuery.Columns[0].Visible = false;
取出选定行对象时,