Представление списка не сортирует столбец даты в WPF

Я хочу отсортировать представление списка в wpf, используя столбец даты. Но ниже код сортировки строки, а не даты. Я связал таблицу данных с представлением списка. Вот мой код

<ListView.View>
<GridView x:Name="gvDetails" >
<GridViewColumn  Header="Header1"       Width="130"      DisplayMemberBinding="{Binding Column1}" />
<GridViewColumn  Header="Header2"        Width="120"      DisplayMemberBinding="{Binding Column2}"  />
<GridViewColumn  Header="Header3"         Width="120"      DisplayMemberBinding="{Binding Column3}"  />
<GridViewColumn   Header="DateOfEnquiry"   Width="120"     DisplayMemberBinding="{Binding DateOfEnquiry}" />
</GridView>
</ListView.View>

Код сортировки:

 ICollectionView dataView =
               CollectionViewSource.GetDefaultView(lstvwDetails.ItemsSource);
            if (dataView != null)
            {
                dataView.SortDescriptions.Clear();
                SortDescription sd = new SortDescription("DateOfEnquiry", direction);

                dataView.SortDescriptions.Add(sd);
            }

Но это не сортировка столбца даты просмотра по дате, а сортировка только по строке. Пожалуйста, порекомендуйте.

1 ответ

Я думаю, что этот образец поможет вам:

string propertyName = "DateOfEnquiry";

ICollectionView dataView = CollectionViewSource.GetDefaultView(lstvwDetails.ItemsSource);
ListSortDirection direction = ListSortDirection.Ascending;

if (dataView.SortDescriptions.Count > 0 && dataView.SortDescriptions[0].PropertyName == propertyName)
{
    if (dataView.SortDescriptions[0].Direction == ListSortDirection.Ascending) direction = ListSortDirection.Descending;
    else direction = ListSortDirection.Ascending;
}
dataView.SortDescriptions.Clear();
dataView.SortDescriptions.Add(new SortDescription(propertyName, direction));
Другие вопросы по тегам