在WPF的DATAGRID中快速点击出现在ADDNEW或EDITITEM事务过程不允许DEFERREFRESH

原文 在WPF的DATAGRID中快速点击出现在ADDNEW或EDITITEM事务过程不允许DEFERREFRESH

在项目中关于DataGrid的遇到过一些问题,其中是关于迁入CheckBox的双向绑定后,快速点击多次后出现“AddNew或EditItem事务过程不允许DeferRefresh”的问题,如图所示

或者是英文

原因是DataGrid编辑状态引起的,详情见http://stackoverflow.com/questions/3354916/what-is-the-proper-way-to-handle-multiple-datagrids-in-a-tab-control-so-that-cel,

解决方法正如上面所说的,在datagrid中添加一个PreviewMouseDown鼠标按下前事件,如下

        /// <summary>/// 鼠标按下事件,处理快速点击发生deferRefresh异常的处理/// </summary>/// <param name="sender"></param>/// <param name="e"></param>        private void dtgSchemeApp_PreviewMouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)        {if (IsUnderTabHeader(e.OriginalSource as DependencyObject))                CommitTables(this.dtgSchemeApp);        }

private bool IsUnderTabHeader(DependencyObject control)        {if (control is TabItem)return true;            DependencyObject parent = VisualTreeHelper.GetParent(control);if (parent == null)return false;return IsUnderTabHeader(parent);        }

private void CommitTables(DependencyObject control)        {if (control is DataGrid)            {                DataGrid grid = control as DataGrid;                grid.CommitEdit(DataGridEditingUnit.Row, true);return;            }int childrenCount = VisualTreeHelper.GetChildrenCount(control);for (int childIndex = 0; childIndex < childrenCount; childIndex++)                CommitTables(VisualTreeHelper.GetChild(control, childIndex));        }

其中this.dtgSchemeApp是DataGrid的名称,大家可以了解一下。

posted on 2014-01-08 14:14 NET未来之路 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/lonelyxmas/p/3510578.html

在WPF的DATAGRID中快速点击出现在ADDNEW或EDITITEM事务过程不允许DEFERREFRESH相关推荐

  1. vs2022 C#连接sqlserver将表显示在wpf的datagrid中

    打开vs2022,点击文件->新建->项目 然后选择WPF应用程序,点击下一步. 输入项目名称,点击下一步. 根据需求选择.NET框架,这里默认.NET6,点击创建. 弹出设计窗口 点击左 ...

  2. 在Excel表中快速的标记出重复数据详细步骤

    1. 对该列数据进行排序.目的是让重复数据集中在一起. 2. 选中需要查找重复值的区域. 3. 点击工具栏的开始菜单,依次选择样式->条件格式->突出显示单元格规则->重复值. 4. ...

  3. WPF学习笔记(7):DataGrid中数字自定义格式显示

    WPF学习笔记(7):DataGrid中数字自定义格式显示 原文:WPF学习笔记(7):DataGrid中数字自定义格式显示 DataGrid中数据显示如下图,数据格式比较杂乱.希望达到以下要求:(1 ...

  4. invoke 按钮点击_使用aspectj对app中按钮的快速点击进行处理

    最近项目进入紧锣密鼓测试阶段,昨天测试提了一个issue,app中按钮都没有做快速点击校验. 这就涉及到aop面向切面编程了!后端开发Spring对aop应该很熟悉,android开发中可能用到aop ...

  5. 在WPF中快速实现键盘钩子

    原文:在WPF中快速实现键盘钩子 大部分的时候,当我们需要键盘事件的时候,可以通过在主窗口注册KeyBinding来实现,不过,有的时候我们需要的是全局键盘事件,想在任何一个地方都能使用,最开始的时候 ...

  6. android快速点击两次,如何通过在Android中快速单击两次按钮来防...

    如果我在我的Android应用中快速单击按钮,似乎它后面的代码运行了两次. 如果我两次单击菜单按钮,则必须启动onclick的活动只会启动两次,而我必须退出两次. 这真的很烦人,因为如果我单击菜单按钮 ...

  7. wpf中的datagrid中如何显示图片

    2012-09-11 10:55 在datagrid中添加一个模板列,xaml内容如下: <DataGridTemplateColumn Header="头像" Width= ...

  8. WPF 4 DataGrid 控件(基本功能篇)

    提到DataGrid 不管是网页还是应用程序开发都会频繁使用.通过它我们可以灵活的在行与列间显示各种数据.本篇将详细介绍WPF 4 中DataGrid 的相关功能. 自定义列 默认情况下,当我们为Da ...

  9. WPF 实现 DataGrid/ListView 分页控件

    原文:WPF 实现 DataGrid/ListView 分页控件 在WPF中,通常会选用DataGrid/ListView进行数据展示,如果数据量不多,可以直接一个页面显示出来.如果数据量很大,200 ...

最新文章

  1. Ubuntu下安装中文输入法(本文安装的搜狗输入法)
  2. 1.10 instanceof关键字
  3. InnoSetup 安装前卸载旧版程序
  4. zabbix针对目录监控
  5. vs2017字体最佳选择_如何为下一个项目选择最佳字体? 一个简单的游戏
  6. 将json 填入表格_如何将Google表格用作JSON端点
  7. matlab文件序号超出511,求教一段matlab的代码 - 数学 - 小木虫 - 学术 科研 互动社区...
  8. 程序员如何在 HTTPS 中高效配置通配符证书?| 技术头条
  9. php与html网页制作,web 一个简单地三级网页的设计和编写,html+css,适合学习 制作的新手 WEB(ASP,PHP,...) 238万源代码下载- www.pudn.com...
  10. 炒股、投资免于恐惧的思考
  11. MVC自定义路由的配置,必须把自己的路由写在前面
  12. matlab傅里叶光学仿真,关于微透镜阵列的傅里叶光学分析
  13. 期望和方差的定义与性质
  14. 查询计算机ip地址的方法,计算机的ip地址查询的几种简单方法介绍
  15. dell服务器安装系统加载驱动,DELL服务器使用U盘加载驱动安装Win2003.doc
  16. Q-criterion- definition and post-processing
  17. 超闩锁和子闩锁如何工作的
  18. javaIO模型-Socket实现一个简单的客服聊天功能的改造(二)
  19. 〖Python 数据库开发实战 - MySQL篇⑩〗- MySQL 中不同的数据类型
  20. ISO Country Code - 标准国家码

热门文章

  1. navicat连接本地MySQL8.0.19报1251错误的解决办法
  2. 以太坊智能合约编程之带菜鸟入门教程
  3. jdbc,mybatis,hibernate各自优缺点及区别
  4. html input得到内容,js获得html中的input标签内容
  5. linux kvm安装windows,Linux下KVM安装windows
  6. java实现语法分析器_语法分析 | 语法分析的任务
  7. nginx服务器远程无法访问,nginx首次安装远程无法访问
  8. java字符串的常量池
  9. Mac 安装Pygame小记
  10. Four-tuples (2018山东省省赛 容斥定理)