XtraGrid在更新其数据源后未刷新

Pro*_*ofK 6 data-binding devexpress xtragrid winforms

我在Windows窗体上有一个XtraGrid控件,绑定到一个对象集如下:

clientListBindingSource.DataSource = ObjectContext.Clients;
Run Code Online (Sandbox Code Playgroud)

ObjectContext是普通的EF上下文.要编辑客户端,我将选定行的Client对象传递给我的编辑表单,并按如下方式获取保存更改:

var rows = mainView.GetSelectedRows();
var editClient = ((Client)mainView.GetRow(rows[0]));
var editForm = new ClientDetailForm
                    {
                        EditClient = editClient
                    };
var result = editForm.ShowDialog();
if (result == DialogResult.OK)
{
    ObjectContext.SaveChanges(SaveOptions.AcceptAllChangesAfterSave);
    clientGrid.RefreshDataSource();
}
Run Code Online (Sandbox Code Playgroud)

我在编辑表单中所做的更改仍然存在于数据库中,但我尝试了几种尝试让网格更新的方法,并且在我重新启动应用程序之前它一直顽固地拒绝.我究竟做错了什么?

jas*_*elg 6

尝试在进行以下更改后重置数据源:

yourGrid.DataSource = null; // you might not need this, but it's my practice
yourGrid.DataSource = data_source;
Run Code Online (Sandbox Code Playgroud)

  • 这是有效的,谢谢,但它对我来说有点脑死亡,没有别的,包括`RefreshDataSource`方法,可行.DevExpress控件似乎与ED数据源相差一点. (3认同)