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

我找了很多类似的提问,都没找到答案,包括在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;

    }

}

5个回答

你用ObservableCollection了吗?

ifbool
ifbool 谢谢,这个帖子和我描述的不是同一件事情. 我需要的是又能排序又能编辑...
3 年多之前 回复

dataBinder()

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问