编辑单元格事件获取单元格值和位置
在我的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; }