我正在使用 DataGrid,并且 ItemSource 绑定(bind)到字符串列表。 问题是排序不起作用。 标题已启用并且可以单击,但数据未排序。
<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="Name",但我不知道该用什么来代替“Name”
最佳答案
您只需设置SortMemberPath="."
即可。当您将 Binding 的 Path
设置为 "."
时,此用法类似,这意味着整个项目将被绑定(bind),在这种情况下,整个项目将用作输入排序器的值。
关于wpf - 使用 DataGridTemplateColumn 对数据网格进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26575140/