Вы можете использовать DataGridTemplateColumn. Я предполагаю, что вы хотите установить шаблон по умолчанию в xaml и перезаписать его позже в коде. Здесь я установил его на MyDefaultTemplate, который должен быть определен в ресурсах элемента управления вместе с вашим AnalogTemplate:
<DataGrid AutoGenerateColumns="False" Height="200" Name="dataGrid1" Width="200">
<DataGrid.Columns>
<DataGridTemplateColumn x:Name="myColumn" CellTemplate="{StaticResource MyDefaultTemplate}"/>
</DataGrid.Columns>
</DataGrid>
Тогда вы можете легко изменить его в коде:
myColunm.CellTemplate = (DataTemplate) FindResource("AnalogTemplate");
Прежде чем делать что-либо в коде, вы должны спросить себя, можете ли вы вместо этого сделать это в чистом xaml, часто вы можете это сделать. Также проверьте CellTemplateSelector и CellEditingTemplateSelector.
Обратите внимание, что DataGrid использует два шаблона. Один для отображения нередактируемого содержимого (CellTemplate) и один для редактируемого содержимого (CellEditingTemplate).
См. DataGridTemplateColumn на MSDN .