title: DataTable.RejectChanges() and refreshing form textbox controls
body: <p>I'm working on a framework understanding in C#.  I have a form with simple add/edit, save/cancel (and Exit) buttons on a form.  The form has a grid, and a datatable bound to it (data table is a field on the form for scope purposes to remain for duration of the form).</p>
  
  <p>Also on the form are 3 simple textbox controls bound to respective columns in the <code>DataTable</code>.  When I scroll the grid, the textbox details automatically refresh... perfect.</p>
  
  <p>I have add / cancel coordination working fine, but failing on edit / cancel.  Failing with respect to the following.</p>
  
  <p>I start the form, grid displays 3 rows (column 1 is a simple "Description").  First row has a value <code>Test</code> (so shows the corresponding bound individual textbox control on the form).  I click edit button and can now change the individual textbox (not the datagrid) and change it to <code>Test changed value</code>.  </p>
  
  <p>So, now, I go to click the "Cancel" button and hope for the following... The grid does NOT get updated with the new value, and the individual textbox control goes back to its original <code>Test</code> value.  </p>
  
  <p>In the Cancel button, I issue a <code>MyDataTable.RejectChanges()</code>, and the grid properly retains the original <code>Test</code> value, but the textbox control keeps the <code>Test changed value</code> content.  When I have this same <code>RejectChanges()</code> call during the add/cancel combination, it all works perfectly.</p>
  
  <p>To simulate a similar during the add/cancel, I am explicitly forcing the grid to the last valid row in the datatable which in-turn updates the textboxes... Apparently, something in the calling / reloading process of the <code>MyDataGridView.CurrentRow</code> getting triggered does something I can't see.  Since its an EDIT, I'm not removing a row from the table (temporary from the "Add"), and then rejecting (which removes), and forces a row change via <code>MyDataGridView.CurrentCell = [0, LastDataRowInDataTable]</code>.</p>
  
  <p>Any thoughts would be great.</p>