I want to have a column/cell in my grid where any changes to other cells in a given row, help me re-calculate a column/cell in the same row.

The changes could be any other cell value, or re-ordering the rows by dragging/dropping them into a different order.

I'm sure there is a way using one or more of the row/cell events, but I'm just asking what is the suggested best practice, or event to do so.

I would create a generic routine that takes either a row number or a row key as a parameter.

For reacting to changing cell values I would use the AfterCommitEdit event. That event only fires when the user changes the value after editing or if you call CommitEditCurCell in your code.

For reacting to different types of events (row reordering, for example) you can use the event that makes most sense and then pass the row number to your generic routine.