【问题标题】:DataGrid CellEditEnding event raised after binding sometimes有时在绑定后引发 DataGrid CellEditEnding 事件
【发布时间】:2014-01-24 19:52:21
【问题描述】:

我有一个绑定到项目集合的 WPF DataGrid。在后面的代码中我订阅了 CellEditEnding 事件:

dg.CellEditEnding += dg_CellEditEnding;

我希望在绑定对象中更新更改的值之前引发此事件。但似乎有时会,有时不会。如果我更改网格中的值并按 Enter,则首先引发事件,然后更新绑定对象。如果我按 Tab,或单击同一行中的另一个单元格,它们会反过来发生。

为什么会这样?在将更改的值应用于绑定对象之前,我需要一种方法来查看更改的值。我可以订阅另一个活动吗?我意识到这不是传统的 MVVM 方法。这是自定义数据网格控件的一部分,具有一些在视图模型中难以实现的要求。

【问题讨论】:

    标签: c# wpf datagrid


    【解决方案1】:

    您可以为“LostFocus”事件的 CellEditEnding 事件使用相同的主体。这样一来,当您离开单元格时,您想要在其完成编辑时发生的任何事情也会发生。

    至少,我期望它是这样工作的。试试看,告诉我!

    如果您认为 LostFocus 无法满足您的需求,这里有一个 link 来表示 datagridcells 的所有事件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-08
      • 2019-02-02
      • 2016-03-19
      • 1970-01-01
      • 1970-01-01
      • 2011-09-08
      • 1970-01-01
      相关资源
      最近更新 更多