我在DataGrid中有一个A,B,C(简化)列。该DataGrid绑定到DataTable,而C列值是A和B的差值,即(A-B)。 A列和B列是可编辑的。现在我的要求是当用户更改A或B的值时,应该相应地更新列C的值。为此,我写了 CellEditEnding 事件。在这种情况下,我能够得到行但不是用户刚刚修改过的值。如果我从DataTable获得了corrorponding值,我得到了Old值,即用户修改之前的值。
答案 0 :(得分: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;