This code only works for records that are currently visible in the grid. If I try to focus on a cell that is in a row that is not visible then ContainerFromItem in the delegate you provided returns null. I'm guessing this is because the records are virtualized, and the row has not yet been rendered?
Is there a way to delay execution of the delagate until after the row the cell is located in has been brought into view?
answered on 16 Jun 2009, 08:39 AM
The method uses the Dispatcher to delay execution but it seems that it is not working correctly.
Could you try invoking the dispatcher with a lower priority:
var row = this.RadGridView1.ItemsControl.ItemsGenerator.ContainerFromItem(record) as GridViewRow;