I found a little more info on this problem searching MS. Here's a comment:
The DataGridViewComboBox must hold all possible values that it will display
in it's items collection. For example, when binding to the Customers table
and having the CompanyName field a combobox the combobox must contain all
possible values. If the grid attempts to set the cell's value where the
combobox cell doesn't have the value then we throw the dataError event.
To workaround this, handle the DataError event of the DataGridView. For
example:
void dataGridView1_DataError(object sender, DataGridViewDataErrorEventArgs
e)
{
// ignore the data error occurring under the territoryComboBoxColumn
if (e.ColumnIndex != territoryComboBoxColumn.Index)
{
MessageBox.Show("Data error occurs:" + e.Exception.Message);
}
}
This tells us how to avoid the Exception. However, it doesn't address allowing the user's typed input to become the value for that cell. Any thoughts?