编辑单元格事件获取单元格值和位置

在我的Datagrid中,我允许用户编辑一些单元格,在编辑这些单元格后,我想将更改提交到数据库(在输入时)。 我在线寻找资源以解决问题。

我使用一个名为的事件:

CellEditEnding但事件只为我提供了更改单元格的Row和Col的方式。 我如何使用这些来找到细胞本身并获得价值?

您可以使用此链接中的此function

public static DataGridCell GetCell(this DataGrid grid, DataGridRow row, int column) { if (row != null) { DataGridCellsPresenter presenter = GetVisualChild(row); if (presenter == null) { grid.ScrollIntoView(row, grid.Columns[column]); presenter = GetVisualChild(row); } DataGridCell cell = (DataGridCell)presenter.ItemContainerGenerator.ContainerFromIndex(column); return cell; } return null; } 

并从您的事件处理程序中调用它:

 object cellvalue = DataGridCell(yourgrid, e.Row, e.Column.DisplayIndex).GetValue; 

此函数也在GetCell()函数中调用

 public static T GetVisualChild(Visual parent) where T : Visual { T child = default(T); int numVisuals = VisualTreeHelper.GetChildrenCount(parent); for (int i = 0; i < numVisuals; i++) { Visual v = (Visual)VisualTreeHelper.GetChild(parent, i); child = v as T; if (child == null) { child = GetVisualChild(v); } if (child != null) { break; } } return child; }