Mam zestaw narzędzi DataGrid WPF z jednym DataGridTemplateColumn. W atrybucie siatki określiłem, że chcę, aby wszystkie kolumny można było sortować, ale DataGridTemplateColumn na to nie zezwala. Wszystkie inne kolumny umożliwiają sortowanie. Próbowałem nawet jawnie ustawić CanUserSort na true dla tej kolumny, ale bez powodzenia. Czy jest w ogóle możliwe sortowanie kolumny szablonu? Udostępniłem niestandardowy sortownik, który działa dla wszystkich kolumn, ale nagłówek nie pozwala na kliknięcie sortowania.
<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>
wpf
sorting
wpftoolkit
datagridtemplatecolumn
Kilhoffer
źródło
źródło
Dodano
SortMemberPath="Name"
do DataGridTemplateColumn. Zaczęło się sortować.<data:DataGridTemplateColumn Header="Name" SortMemberPath="Name" CanUserSort="True">
źródło
<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>
źródło