这是我的数据网格代码片段:
<DataGrid Margin="0,4,0,0" Grid.Row="2" CanUserSortColumns="True" x:Name="grvDocs" Sorting="grvDocs_Sorting" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTemplateColumn Header="Efile ID" Width="100" SortMemberPath="d.DocumentID">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding DocumentID}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
...这是C#代码:
private void grvDocs_Sorting(object sender, DataGridSortingEventArgs e)
{
DataGridColumn column = e.Column;
ListSortDirection direction = (column.SortDirection != ListSortDirection.Ascending) ? ListSortDirection.Ascending : ListSortDirection.Descending;
//set the sort order on the column
column.SortDirection = direction;
e.Handled = true;
BindDocuments(0, "LastStatusChangedDateTime", e.Column.SortDirection);
}然而,当我检查e.Column.SortDirection时,它总是递增的。你知道怎么解决这个问题吗?我感觉更像是WTF而不是WPF。
发布于 2013-04-04 02:10:22
看起来SortMemberPath="d.DocumentID"应该是SortMemberPath="DocumentID",因为绑定是Text="{Binding DocumentID}"。此外,如果只想显示文本,则可以使用DataGridTextColumn并设置Binding属性。希望能帮上忙。
https://stackoverflow.com/questions/15791369
复制相似问题