There's not enough information to know how your data is related.
From doing similar projects with WinForms and DataSets:
1. Determine which data was changed:
private void theDataGridView_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
int c = e.ColumnIndex;
int r = e.RowIndex;
}
2. Update database and Save, then re-fill form
this.Validate();
this.theBindingSource.EndEdit();
TableAdapter.Insert();
RefreshFormData();
If you wanted the list to update after each cell change and save all data at the end, would need to write to the DataTable and repopulate your list and update database in another event e.g. a Commit button.