взгляните на событие BeginnigEdit вашей DataGrid. Установите для e.cancel значение true, чтобы избежать редактирования.
Если ваша DataGrid привязана к DataTable, то для некоторых столбцов этой таблицы данных может быть только чтение.
обратите внимание, что в аргументах событий BeginningEdit у вас есть доступ к столбцу col / row с помощью e.Column и e.Row.