使用devexpress 15.2 c#在gridview中更改焦点后重置已编辑的单元格

时间:2016-03-16 04:28:47

标签: c# devexpress gridcontrol

我是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");
    }
}

已重置编辑的单元格:

Edited cell was reset

全部谢谢:)

2 个答案:

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