在我的系统中,我需要捕获并发送单元格编辑的旧值和新值。我读到您可以通过检查事件DataGridCellEditEndingEventArgs的EditingElement来做到这一点,如下所示:

    _dataGrid.CellEditEnding += (sender, e) => {
      var editedTextbox = e.EditingElement as TextBox;

      if (editedTextbox != null)
      MessageBox.Show("Value after edit: " + editedTextbox.Text);
}

就我而言,数据是一个字典,所以EditingElement是ContentPresenter
var editedTextbox = e.EditingElement as ContentPresenter;
if (editedTextbox != null)
  MessageBox.Show("Value after edit: " + editedTextbox.Content);

内容是原始的,而不是新的编辑值。

我如何使它工作:
_dataGrid.SomeEvent(sender, e)->{
  SendValues(e.oldCellValue, e.newCellValue);
}

最佳答案

我采用了让行数据对象继承自IEditableObject的方法。我在EndEdit()接口(interface)方法中处理更新的值

关于c# - WPF DataGrid-编辑结束后单元格的新值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28156929/

10-12 04:07