在WPF的DataGrid中如果排序后再编辑单元格, 然后就不能重新绑定DataGrid?

我找了很多类似的提问,都没找到答案,包括在stackoverflow.
正常的情况下,代码是可以运行的,但是一旦用户在datagrid中对某列排序了,接下来再编辑单元格也没问题,可是一旦在cellediteding事件中加入重新绑定,运行就会出错."{"在 AddNew 或 EditItem 事务过程中不允许“Sorting”。"}".

我想可能在datagrid编辑完之后,界面没有渲染完毕. 但是紧接着绑定,会破坏排序.
这个该怎么解决呢?

为了使用友好性考虑, 还是很希望能够实现排序后修改单元格刷新datagrid的. 谢谢了 !

private void DataGrid1_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e) {

       string sql="update table1 set field1='"+cell_value+''
        BindGR();

    }

private void BindGR()

{
    //Bind DataGrid
    if (dt != null)
    {
        DataGrid1.ItemsSource = dt.DefaultView;

    }

}

http://bbs.csdn.net/topics/390407622

https://www.so.com/s?ie=utf-8&src=360chrome_toolbar_search&q=%E5%9C%A8WPF%E7%9A%84DataGrid%E4%B8%AD%E5%A6%82%E6%9E%9C%E6%8E%92%E5%BA%8F%E5%90%8E%E5%86%8D%E7%BC%96%E8%BE%91%E5%8D%95%E5%85%83%E6%A0%BC%2C+%E7%84%B6%E5%90%8E%E5%B0%B1%E4%B8%8D%E8%83%BD%E9%87%8D%E6%96%B0%E7%BB%91%E5%AE%9ADataGrid%3F

你用ObservableCollection了吗?

dataBinder()

遇到过类似的问题,一般都是没有修改完成或是没有绑定完成的时候就对datagrid控件进行操作造成的。
可以考虑用分页加快datagrid的加载速度,另外,可以用比较暴力的方法如:再调用绑定前加入DataGrid1.ItemsSource=null;
然后再重新加载。