如何sortingWPF Toolkit DataGrid上的DataGridTemplateColumn?
我有一个DataGridTemplateColumn的WPF Toolkit DataGrid。 我已经在网格属性中指定了我希望所有列都是可sorting的,但DataGridTemplateColumn将不允许它。 所有其他列允许sorting。 我甚至尝试明确设置CanUserSort为真正的列,但没有运气。 甚至可以sorting模板列? 我提供了一个适用于所有列的自定义分类器,但是标题不允许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>
您需要将Controls:DataGridTemplateColumn
上的SortMemberPath
属性设置为要sorting的CLR属性的名称。
向DataGridTemplateColumn添加了SortMemberPath="Name"
。 它开始分类。
<data:DataGridTemplateColumn Header="Name" SortMemberPath="Name" CanUserSort="True">
<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>