我是devexpress的新手。当我添加新行并将一些值填充到一个单元格时,然后我专注于同一行中的其他单元格,我在该单元格中丢失了值。 这是我的代码(gridview中的列名与Datatable dtGroupRole中的coumn匹配)
FrmUser.cs
...
adminGroupRoles = AdminGroupRoles.GetAllGroupRoles().ToList();
dtGroupRole = GlobalVars.ToDataTable<AdminGroupRoles>(adminGroupRoles);
grdGroupRoles.DataSource = adminGroupRoles;
AdminGroupRoles.cs
public class AdminGroupRoles
{
public int GroupId { get; set; }
public string GroupName { get; set; }
public static List<AdminGroupRoles> GetAllGroupRoles()
{
return AdminGroupRoles.Inst.ExeStoreToList("sp_AdminUsers_GetAllGroupRoles");
}
}
已重置编辑的单元格:
全部谢谢:)
答案 0 :(得分:0)
我看到你将adminGroupRoles指定为网格源。这是一个清单。这样网格可以添加新行,数据源应该是IBindingList。 adminGroupRoles不实现它。据我所知,dtGroupRole是从adminGroupRoles转换的DataTable。因此,您需要用作网格数据源:
adminGroupRoles = AdminGroupRoles.GetAllGroupRoles().ToList();
dtGroupRole = GlobalVars.ToDataTable<AdminGroupRoles>(adminGroupRoles);
grdGroupRoles.DataSource = dtGroupRole;
答案 1 :(得分:0)
使用BindingList而不是List作为Gosha_Fighten回复。然后,您可以将绑定列表转换为列表,如:
列表&lt; T&gt; list = yourbindinglist.Select(b =&gt; b).ToList();
或者转换你的清单&lt; T&gt;到bindinglist&lt; T&gt;像:
的
yourBindingList = new BindingList&lt; T&gt;(listToConvert);