My DataTable имеет столбец Date, который должен принимать несколько различных форматов DateTime.Я хотел бы объединить их в одну форму, а затем отсортировать соответственно по дате.
Пока что я написал код ниже, чтобы изменить способ отображения даты.Но это все еще не сортируется должным образом.Отображается не то, что используется при сортировке.Он все еще использует старый формат.
Таким образом, 2018-05-30 все еще идет после 2018-09-05, потому что система считывает данные до того, как они были преобразованы как 30/05/2018 и 05/09/2018.и потому что 30> 05 это неправильно сортирует.У кого-нибудь есть предложения?
if (e.PropertyName.Contains("Date"))
{
DataGridTextColumn dgtc = e.Column as DataGridTextColumn;
DateTimeConverter con = new DateTimeConverter();
(dgtc.Binding as Binding).Converter = con;
}
public class DateTimeConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value != null)
{
try
{
return DateTime.Parse(value.ToString()).ToString("yyyy-MM-dd");
}
catch
{
return value;
}
}
return value;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value != null && value.GetType() == typeof(System.DateTime))
{
DateTime t = (DateTime)value;
return t.ToShortDateString();
}
return value;
}
}