Hi I have a datagrid that has a number of datagridtemplate columns that are all identical apart from they each have a different datacontext on the template\'s stackpanel.
You could use a ContentPresenter to instantiate a DataTemplate for each column:
<toolkit:DataGrid.Resources>
<DataTemplate x:Key="ColumnTemplate">
<StackPanel>
<!-- the structure that I want to extract to a template -->
</StackPanel>
</DataTemplate>
</toolkit:DataGrid.Resources>
<toolkit:DataGrid.Columns>
<toolkit:DataGridTemplateColumn Header="Col 1">
<toolkit:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ContentPresenter ContentTemplate="{StaticResource ColumnTemplate}" Content="{Binding Times[0]}"/>
</DataTemplate>
</toolkit:DataGridTemplateColumn.CellTemplate>
</toolkit:DataGridTemplateColumn>
<toolkit:DataGridTemplateColumn Header="Col 2">
<toolkit:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ContentPresenter ContentTemplate="{StaticResource ColumnTemplate}" Content="{Binding Times[1]}"/>
</DataTemplate>
</toolkit:DataGridTemplateColumn.CellTemplate>
</toolkit:DataGridTemplateColumn>
</toolkit:DataGrid.Columns>
If the elements of Times are all the same type, you could also do <DataTemplate DataType={x:Type YourType}>
and then you wouldn't need to specify ContentTemplate="{StaticResource ColumnTemplate}"
on each column.