The best way to subscribe to the events of each cell in the grid is to subscribe to the events of each cell in the DataRowTemplate.
If your grid is data bound, in order to subscribe to the events of each cell in the DataRowTemplate, you will need to bind the grid between calls to the grid's BeginInit and EndInit methods.
If you are providing data manually (unbound mode), then the columns need to be added to the grid before subscribing to the events of each cell in the DataRowTemplate. Once you have subscribed to the events, you can then add your data.
Demonstration
The following example demonstrates how to subscribe to the events of each cell in a data bound grid.