我有一个DataGridTemplateColumn的WPF Toolkit DataGrid。我在网格属性中指定希望所有列都是可排序的,但DataGridTemplateColumn不允许它。所有其他列确实允许排序。我甚至尝试明确设置CanUserSort为真正的列,但没有运气。是否可以对模板列进行排序?我提供了适用于所有列的自定义排序器,但标题不允许排序点击。如何对WPF Toolkit DataGrid上的DataGridTemplateColumn进行排序?
<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>
完美的作品。谢谢! – Kilhoffer 2010-04-29 17:36:42
一个字的警告。如果您更改基础数据,这不会自动重新排序。 – Kelly 2011-06-27 15:27:14
另一个注意事项:这听起来可能很愚蠢,但是如果你的专栏没有标题(标题),它也将不起作用 - 点击标题将触发排序。我有一个不需要头的列,我通过设置Header =“” – Bokoskokos 2014-08-28 12:40:22