如何排序WPF Toolkit DataGrid上的DataGridTemplateColumn?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (54)

我有一个DataGridTemplateColumn的WPF Toolkit DataGrid。我在网格属性中指定希望所有列都是可排序的,但DataGridTemplateColumn不允许它。所有其他列确实允许排序。我甚至尝试明确设置CanUserSort为真正的列,但没有用。是否可以对模板列进行排序?我提供了适用于所有列的自定义排序器,但标题不允许排序点击。

<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>
提问于
用户回答回答于

你需要将SortMemberPath属性设置为Controls:DataGridTemplateColumn,这是你要排序的CLR属性的名称。

用户回答回答于

添加SortMemberPath="Name"到DataGridTemplateColumn。它开始分类:

<data:DataGridTemplateColumn Header="Name" SortMemberPath="Name" CanUserSort="True">

扫码关注云+社区

领取腾讯云代金券