Обычно я проверяю свои ответы перед тем, как дать их, но я работаю вне своего ПК разработчика, поэтому я не уверен на 100%, какой маршрут лучше, но вот некоторые идеи, которые стоит попробовать.
В DataGridView вы можете использовать событие CellEndEdit , чтобы сообщить, когда ячейка была отредактирована. есть также событие CellLeave , но я не использовал его, и вам может потребоваться поэкспериментировать с ним.
В DataGrid вы можете использовать событие CurrentCellChanged .
Однако для выполнения каких-либо вычислений вам потребуется извлечь значения из базового Dataable или DataView (в зависимости от того, с чем связан элемент управления). Я также обнаружил, что при использовании события DataGrid.CurrentCellChanged возникает ошибка, и оно выбрасывается, когда DataGrid привязан к данным, а не только когда пользователь редактирует содержимое, поэтому вам, возможно, придется с этим поспорить ... Событие может иметь аналогичные проблемы. Как я уже сказал, я не уверен на 100%, поэтому вам нужно экспериментировать.
Кроме того, как предложил Кайл, вы можете попытаться использовать события из базового источника данных.
События DataTable.RowChanged или DataView.ListChanged будут с того места, где я начну.
Как я уже сказал, я сам не могу это проверить, но, надеюсь, одна из этих идей укажет вам правильное направление.