2 ifbool ifbool 于 2016.05.01 10:21 提问

在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个回答

u010623610
u010623610   2016.09.02 10:37

你用ObservableCollection了吗?

devmiao
devmiao   Ds   Rxr 2016.05.01 13:26
ifbool
ifbool 谢谢,这个帖子和我描述的不是同一件事情. 我需要的是又能排序又能编辑...
大约 2 年之前 回复
qq_35485029
qq_35485029   2016.07.06 19:19
bao_0812
bao_0812   2017.12.20 18:16

dataBinder()

chenhuizhouhb
chenhuizhouhb   2018.05.04 16:24

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
WPF的DataGrid数据源中的数据更新后,如何保持视图正确排序
XAML中的代码 后台代码
获取wpf datagrid当前被编辑单元格的内容
确认修改单元个的值, 使用到datagrid的两个事件 开始编辑事件 BeginningEdit="dataGrid_BeginningEdit" 编辑结束事件 CellEditEnding="dataGrid_CellEditEnding" 代码片段如下: //开始修改时单元格内的值 string preValue = "";
WPF学习笔记——编辑DataGrid单元格并实时更新到数据库
在使用WPF时,常常需要利用DataGrid向用户展现从数据库中提取的数据,并提供编辑功能。在完成对单元格的编辑时,我需要把修改后的数据及时更新到数据源,并且上传到数据库。
WPF中修改DataGrid单元格值并保存
编辑DataGrid中的单元格的内容然后保存是非常常用的功能。主要涉及到的方法就是DataGrid的CellEditEnding  和BeginningEdit 。其中BeginningEdit 是当单元格选中后,状态为可编辑状态时触发。CellEditEnding 是在单元格失去焦点后触发的事件。    对于编辑DataGrid中单元格内容的实现逻辑比较简单: 1.保存旧的单元格内容。 2.
wpf中datagrid绑定数据源发生改变
若datagrid绑定的数据源是同一个的话,即使里面的数据不同。页面也不会刷新,则需要重置数据源,再绑定。处理如下: datagrid1.ItemsSource=ListModule; 若ListModule里面的数据改变了,重新绑定后。 datagrid1.ItemsSource=ListModule; 则不能达到预期的显示效果。 应先设为null,再绑定即可。 datagrid1.It
WPF DataGrid 绑定数据及时更新的处理
默认情况下datagrid 绑定数据源后,在界面编辑某一列后,数据不会及时更新到内存对象中。如在同一行上有一个命令对来获取 当前选中行(内存对象)发现,数据未更新过来。解决办法:在列的绑定属性里加上UpdateSourceTrigger,示例XAML如下 <DataGrid Name="dgProducts" IsReadOnly="False" CanUserAddRows="False
如何:用 DataGrid 控件实现验证
如何:用 DataGrid 控件实现验证 .NET Framework 4.5 其他版本 此主题尚未评级 - 评价此主题 利用 DataGrid 控件,您既可以在单元格级别也可以在行级别执行验证。 通过单元格级别验证,将可在用户更新值时验证绑定数据对象的个别属性。 通过行级别验证,将可在用户提交对行的更改时
wpf DataGrid 实现单击单元格进入编辑状态
该代码示例实现了在wpf中,单击DataGrid单元格进入编辑状态(DataGridCheckBoxColumn 单击切换选中状态)的功能。
WPF中datagrid控件选中单元格变色或编辑单元格后变色
不多说,直接上代码~~~ //事件  :编辑单元格后,让单元格变色,以便提醒用户,该单元格数据曾经做过修改  private void dgSourceData_BeginningEdit(object sender, DataGridBeginningEditEventArgs e)         {             int colindex = -1;
关于C# wpf DataGrid单元格双击设置单元格内容
1、我是使用了 visual stadio 2015, 用的C# WPF写个工具,但是发现wpf原生没有涉及表格的东西(类似 winform·的DataGridView),所以使用的是toolkit工具类中的DataGrid,作为表表格展现。 2、本意是做个单元格实现双击则单元格的内容在“自动”和”“ 间切换,但是发现使用DataGrid的MouseDoubleClick事件时发现当鼠标双击整个D