2013-04-03 3 views
1

Это мой DataGrid фрагмент: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> 
... 

Это 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.

+2

Мне нравится ваше последнее предложение. :) –

+0

@Farhad: thx :) – Jack

+0

Что вы подразумеваете под «do a e.ColumnSortDirection»? 'SortDirection' является свойством, что вы * делаете с ним? Событие Sorting позволяет вам переопределить поведение сортировки - что вы делаете, чтобы переопределить это поведение, если вы обрабатываете это событие? –

ответ

0

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

+0

Это не проблема. D.DocumentID верен, поскольку я передаю это моему SQL, который нуждается в d в запросе SQL – Jack

Смежные вопросы