Насколько я могу судить, лучший способ сделать это - сделать это в событии DataTable.RowChanging. Но что, если я хочу отменить действие? EventArgs.Cancel не существует ...
Из обработчика событий DataTable.RowChanging вы можете выдать исключение, чтобы отменить изменение. Исключение будет брошено в фрагмент кода, который вносит изменения, где вы можете обработать его соответствующим образом.
В случае DataGridView, если вы выбросите исключение в DataTable.RowChanging, вы можете обработать его в DataGridView.OnError. Установка EventArgs.Cancel на true сохраняет ввод данных.
DataGridView
DataTable.RowChanging
DataGridView.OnError
EventArgs.Cancel
true