In our data grid we're using an ItemTemplateSelector to switch between two data templates based on the data bound to a particular cell.
As the number of columns depends on the current data set we're using AutoGenerateColumns in our DataGrid.
It appears that this particular combination does not work well -
the template selector isn't even called.
Can we use the template selector in a data grid where columns are created automatically?
More specifically: Is this possible using XAML only w/o putting logic into the code-behind file or using custom behaviours?
Our data grid definition is fairly trivial:
<DataGrid
ItemTemplateSelector="{StaticResource myCustomDataTemplateSelector}"
ItemsSource="{Binding MyData}">
<DataGrid.Columns>
</DataGrid.Columns>
</DataGrid>
The item template selector definition:
<UserControl.Resources>
<ResourceDictionary>
<helpers:CustomDataTemplateSelector x:Key="myCustomDataTemplateSelector"/>
</ResourceDictionary>
</UserControl.Resources>
First,
Secondly, if you mean that you want to modify cell templae based on its value, you are looking for
CellTemplateSelector, on aDataGridTemplateColumn.However, when you auto-generate columns, it already chooses the underlying types automatically.
You can override that behavior in
GeneratingColumnsevent.See this: Force DataTemplateCell with CellTemplateSelector in WPF DataGrid Autogenerated columns
If you need more control, you might want to take a look at https://zamjad.wordpress.com/2011/09/17/datagrid-with-dynamic-columns-revisited/