【发布时间】:2013-08-19 08:24:04
【问题描述】:
我在 GUI 中有一个选项卡控件,其中一个选项卡中有 WPF 4.0 数据网格。当我单击网格中的单元格并编辑某些内容然后切换选项卡时,出现延迟刷新错误:
在 AddNew 或 EditItem 事务期间不允许 DeferRefresh'。
因此,当切换选项卡以取消任何待处理的编辑并且延迟刷新问题消失时,我致电 datagrid.CancelEdit(DataGridEditingUnit.Row)。
但我真正想做的是CommitEdit(),这样用户就不必再次重新输入数据了。
datagrid.CommitEdit(DataGridEditingUnit.Row, true) 不适合我。
我在CommitEnd() 上收到以下错误:
在调度程序处理期间无法执行此操作 暂停。
PS:我试过 datagrid.CommitEdit() 和 datagrid.CommitEdit(DataGridEditingUnit.Column, true) 都没有用。
【问题讨论】:
-
你能显示数据网格和事件的代码吗?
-
在远程桌面上工作并且编辑期间连接关闭时出现相同的错误(可能只是在 PC 进入睡眠状态时发生,而 RDP 是一个红鲱鱼)。通过执行相同的 CommitEdit() 调用以响应 SystemEvents.PowerModeChanged 进行修复。确保将此静态事件与 WeakEventManager 一起使用,这样您就不会泄漏网格和/或在 Unloaded 中注销。
标签: wpf wpfdatagrid