【问题标题】:WPF Datagrid Datatemplate column with textboxes firing multiple change events带有触发多个更改事件的文本框的 WPF Datagrid Datatemplate 列
【发布时间】:2012-11-04 19:57:34
【问题描述】:

我使用 wpf datagrid 来编辑销售条目,如数量、折扣等。我使用 DataTemplateColumn 来处理每个可编辑的列,并在每列内使用文本框控件。每个文本框都绑定到 DataTable 的不同列。在编辑数量时,我必须计算净数量并更新该列,这是通过更新绑定到网格的数据表来完成的。处理每个可编辑文本框的textchangedlostfocusgotfocus 等内部的所有内容。数据网格选择单元设置为“单元格”。

现在使用这种方法时会出现很多问题。有时模板列内文本框的textchanged 事件会触发多次,这会导致所有计算错误。

谁能告诉使用数据模板列编辑网格的最佳方法是什么?我必须使用文本框本身,因为我们有一个仅支持文本框的数字键盘控件。为什么textchanged 事件会多次触发?即使我们垂直滚动网格也会发生这种情况。

【问题讨论】:

    标签: .net wpf datagrid textbox


    【解决方案1】:

    您可以在文本框上设置 UpdateSourceTrigger = PropertyChanged 并使用RowEditEnding 来确保用户确实完成了输入。

    默认情况下,DataGrid 在编辑行失去焦点之前不会提交更改。此外,TextChanged 在创建 TextBox 控件并最初填充文本时触发。

    我猜当你滚动时 TextChanged 会被触发,因为虚拟化正在启动,DataGrid 正在回收行以呈现新对象,并且每个单元格上的文本实际上都在变化。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-27
      • 2010-11-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-25
      • 1970-01-01
      • 2016-02-09
      • 1970-01-01
      相关资源
      最近更新 更多