How to get DataGrid row data after user has finish

2019-05-11 13:40发布

问题:

I want to validate what the user has entered immediately after the user has finished entering a row in a datagrid.

What event should I be looking at, and how do I retrieve the row data? Or even better, the object it's bound to?

回答1:

Use the RowEditEnding event.

private void DataGrid_RowEditEnding(object sender, DataGridRowEditEndingEventArgs e)
{
  YourObject obj = e.Row.Item as YourObject;
  if (obj != null)
  {
     //see obj properties
  }
}


回答2:

  1. Event RowEditEnding
  2. Data should be in e.Row.DataContext/e.Row.Item


回答3:

If you're having problems, I had success using:

DataGridCellInfo selected = YourDataGrid.SelectedCells[0];
YourObject selectedRow = selected.Item as YourObject;