Представление списка не сортирует столбец даты в 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));