0

我在 DataGrid 中有一个 A、B、C 列(简化)。此 DataGrid 绑定到 DataTable 并且 C 列值是 A 和 B 的差异,即 ( A - B )。A 列和 B 列是可编辑的。现在我的要求是,当用户更改 A 或 B 的值时,应相应地更新 C 列的值。为此,我编写了CellEditEnding事件。在这种情况下,我可以获得该行,但不能获得用户刚刚修改的值。如果我从 DataTable 中得到对应的值,我得到的是旧值,即用户修改之前的值。

4

1 回答 1

1

尝试在 CellEndEditing 事件中使用以下代码

((TextBox)e.EditingElement).Text

或者

ContentPresenter contentPresenter = e.EditingElement as ContentPresenter;
        DataTemplate editingTemplate = contentPresenter.ContentTemplate;
        TextBox txtMyTextBox = editingTemplate.FindName("textbox1", contentPresenter) as TextBox;
        string newValue = txtMyTextBox.Text;
于 2013-09-19T05:33:58.053 回答