Как я могу отсортировать DataGridTemplateColumn на Инструментарии WPF DataGrid?

У меня есть Инструментарий WPF DataGrid с одним DataGridTemplateColumn. Я указал в атрибуте сетки, что хочу, чтобы все столбцы были поддающимися сортировке, но 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>
89
задан Kilhoffer 29 April 2010 в 17:13
поделиться

2 ответа

Вам нужно установить свойство SortMemberPath на Controls:DataGridTemplateColumn в имя свойства CLR, по которому вы хотите сортировать.

161
ответ дан 24 November 2019 в 07:14
поделиться

Добавил SortMemberPath="Name" в DataGridTemplateColumn. Началась сортировка.

<data:DataGridTemplateColumn Header="Name" SortMemberPath="Name" CanUserSort="True">
28
ответ дан 24 November 2019 в 07:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: