Due to the UI Virtualization only the cells that are displayed into view will be actually created and displayed with RadGridView.
You are right that you should work with the DataContext of the row, i.e. the bound data item.
For example, you can get the Item like so:
BusisnessObject myBusisnessObject = row.Item as BusisnessObject;
Then you can work with it, access its PK and all the properties you need.
TRY TELERIK'S NEWEST PRODUCT - EQATEC APPLICATION ANALYTICS for SILVERLIGHT.
Learn what features your users use (or don't use) in your application. Know your audience. Target it better. Develop wisely.
Sign up for Free application insights >>