使用DataGridTemplateColumn对Datagrid进行排序

时间:2014-10-26 16:22:29

标签: wpf sorting datagrid datagridtemplatecolumn

我正在使用DataGrid,而ItemSource绑定到字符串列表。 问题是排序不起作用。 标题已启用,可以单击,但数据未排序。

<DataGrid ItemsSource="{Binding CollectionNames}" SelectedItem="{Binding CurrentName}" SelectionUnit="FullRow" CanUserAddRows="False" AutoGenerateColumns="False" SelectionMode="Single" >
                <DataGrid.Columns>
                    <DataGridTemplateColumn Width="400" CanUserSort="True"  SortMemberPath="Name">
                        <DataGridTemplateColumn.HeaderTemplate>
                            <DataTemplate>
                                <TextBlock Text="Name" Foreground="#FF40A4E0" HorizontalAlignment="Left" VerticalAlignment="Center"></TextBlock>
                            </DataTemplate>
                        </DataGridTemplateColumn.HeaderTemplate>
                        <DataGridTemplateColumn.CellTemplate>
                            <DataTemplate>
                                <ContentControl>
                                    <TextBlock HorizontalAlignment="Left" VerticalAlignment="Center" Text="{Binding}"/>
                                </ContentControl>
                            </DataTemplate>
                        </DataGridTemplateColumn.CellTemplate>
                    </DataGridTemplateColumn>
                </DataGrid.Columns>
                <DataGrid.CellStyle>
                    <Style TargetType="DataGridCell">
                        <Setter Property="BorderThickness" Value="0"/>
                    </Style>
                </DataGrid.CellStyle>
            </DataGrid>

我认为问题是 SortMemberPath =“名称”,但我不知道该放什么而不是“名字”

1 个答案:

答案 0 :(得分:3)

只需设置SortMemberPath="."即可。当您将Binding的Path设置为"."时,此用法类似,这意味着整个项目将被绑定,在这种情况下,整个项目将用作分拣机的输入值。