96

DataGridTemplateColumn が 1 つある WPF Toolkit DataGrid があります。すべての列を並べ替え可能にするようにグリッド属性で指定しましたが、DataGridTemplateColumn では許可されません。他のすべての列では、並べ替えが可能です。その列の CanUserSort を明示的に true に設定しようとしましたが、うまくいきませんでした。テンプレート列をソートすることさえ可能ですか? すべての列で機能するカスタム ソーターを提供しましたが、ヘッダーで並べ替えのクリックが許可されません。

<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>
4

3 に答える 3

179

SortMemberPathプロパティControls:DataGridTemplateColumnを、並べ替えたい CLR プロパティの名前に設定する必要があります。

于 2010-04-29T17:35:43.727 に答える
38

SortMemberPath="Name"DataGridTemplateColumn に追加されました。並べ始めました。

<data:DataGridTemplateColumn Header="Name" SortMemberPath="Name" CanUserSort="True">
于 2010-04-30T01:29:00.053 に答える