How can I sort a DataGridTemplateColumn in a WPF Toolkit DataGrid?

I have a DataGrid Toolkit WPF with one DataGridTemplateColumn. I indicated in the grid attribute that I want all the columns to be sortable, but the DataGridTemplateColumn will not allow this. All other columns allow sorting. I even tried to explicitly set CanUserSort to true for this column, but no luck. Is it even possible to sort a template column? I have provided a custom sorter that works for all columns, but the header will not allow click sorting.

<Controls:DataGrid ItemsSource="{Binding Events}" AutoGenerateColumns="False" CanUserSortColumns="True" CanUserReorderColumns="False" Sorting="DataGrid_Sorting" x:Name="EventsGrid"> <Controls:DataGrid.Columns> <Controls:DataGridTemplateColumn Header="Type" Width="42" CanUserResize="False"> <Controls:DataGridTemplateColumn.CellTemplate> <DataTemplate> <Image Source="{Binding EventTypeImage, Mode=OneWay}" HorizontalAlignment="Center" Width="16"/> </DataTemplate> </Controls:DataGridTemplateColumn.CellTemplate> </Controls:DataGridTemplateColumn> <Controls:DataGridTextColumn Header="Source" Binding="{Binding Source, Mode=OneWay}" /> <Controls:DataGridTextColumn Header="Details" MinWidth="175" Binding="{Binding Details, Mode=OneWay}" /> <Controls:DataGridTextColumn Header="Timestamp" MinWidth="175" Binding="{Binding Timestamp, Mode=OneWay}" IsReadOnly="True"/> </Controls:DataGrid.Columns> </Controls:DataGrid> 
+72
sorting wpf datagridtemplatecolumn wpftoolkit
Apr 29 '10 at 17:13
source share
3 answers

You need to set the SortMemberPath property to Controls:DataGridTemplateColumn in the name of the CLR property that you want to sort.

+131
Apr 29 '10 at 17:35
source share

Added SortMemberPath="Name" to DataGridTemplateColumn. He started sorting.

 <data:DataGridTemplateColumn Header="Name" SortMemberPath="Name" CanUserSort="True"> 
+22
Apr 30 '10 at 1:29
source share
  <DataGridTemplateColumn SortMemberPath="DataDiNascita" Header="Data di nascita" IsReadOnly="True"> <DataGridTemplateColumn.CellEditingTemplate> <DataTemplate> <DatePicker SelectedDate="{Binding Path=DataDiNascita}"></DatePicker> </DataTemplate> </DataGridTemplateColumn.CellEditingTemplate> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <TextBlock Text="{Binding Path=DataDiNascita,StringFormat=\{0:dd/MM/yyyy\}}"></TextBlock> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> 
+11
Mar 27 '14 at 7:26
source share



All Articles