Каждая строка в DataGrid является шаблоном, как и каждая ячейка. Обычный DataGrid не имеет понятия ячеек и текущих позиций ячеек, только выбранные строки.
Если бы вы смогли получить достаточно информации о местоположении, я бы сказал, что вы можете наложить границу на DataGrid, но отладчик показывает, что в DataGrid недостаточно информации, чтобы даже рассчитать положение текущей выбранной ячейки.
Один из возможных вариантов
Единственный способ думать об этом с помощью DataGrid - перехватывать события фокуса на отдельных элементах управления ячейки (например, TextBoxes в DataGrid) и использовать положение выбранного элемента управления относительно родительского отработать пограничную позицию. Каждый столбец должен быть шаблонным столбцом, чтобы вы могли подключить события GotFocus.
В противном случае ...
... вам нужно будет использовать другой вид контроля, чтобы получить желаемый результат.
Вы можете использовать простую старую сетку, например, полный элементов управления TextBox, но вам придется самостоятельно обрабатывать выделение и навигацию с клавиатуры по сетке.
Если позволяет бюджет, я бы искал сторонний элемент управления электронными таблицами для Silverlight. В противном случае посмотрите, построил ли кто-нибудь его на Codeplex или где-либо еще.