SortDirection всегда по возрастанию в WPF

Это мой фрагмент сетки данных:

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

Это код С#:

 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.


person Jack    schedule 03.04.2013    source источник
comment
Мне нравится твоя последняя фраза. :)   -  person Farhad Jabiyev    schedule 03.04.2013
comment
Что вы подразумеваете под e.ColumnSortDirection? SortDirection — это свойство, что вы делаете с ним? Событие Sorting позволяет вам переопределить поведение сортировки — что вы делаете, чтобы переопределить это поведение, если вы обрабатываете это событие?   -  person Peter Ritchie    schedule 03.04.2013
comment
Вы проверили это: stackoverflow.com/questions/11043040/   -  person Farhad Jabiyev    schedule 03.04.2013
comment
да, но эта проблема выглядит иначе. Моя проблема в том, что если я щелкну столбец 10 раз, он всегда показывает «По возрастанию».   -  person Jack    schedule 03.04.2013
comment
@PeterRicthie: e.Column.SortDirection — это свойство. e является экземпляром DataGridSortingEventArgs, как показано в коде. Также, пожалуйста, проверьте мое редактирование. Я получаю Ascending или null в SortDirection. Что мне не хватает?   -  person Jack    schedule 04.04.2013


Ответы (1)


Кажется, что SortMemberPath="d.DocumentID" должно быть SortMemberPath="DocumentID", так как привязка Text="{Binding DocumentID}". Также вы можете использовать DataGridTextColumn и установить свойство Binding, если хотите показывать только текст, просто совет. Надежда помогает...

person Raúl Otaño    schedule 03.04.2013
comment
Это не проблема. D.DocumentID верен, так как я передаю это своему SQL, который нуждается в d в SQL-запросе. - person Jack; 04.04.2013