WPF DataGrid сортировка по умолчанию не работает

У меня есть DataGrid со столбцами XAML как таковыми:

<DataGridTextColumn Header="Time" Binding="{Binding Date, StringFormat='yyyy-MM-dd  HH:mm:ss'}" SortMemberPath="Date" SortDirection="Descending" Width="130" CanUserResize="True" />
<DataGridTextColumn Header="Level" Binding="{Binding Level}" Width="60" CanUserResize="True" />
<DataGridTextColumn Header="Source" Binding="{Binding Logger}" Width="150" CanUserResize="True" />
<DataGridTextColumn Header="Message" Binding="{Binding Message}" Width="*" CanUserResize="True" />

Я связываю это сObservableCollection<EalsLogEvent>, гдеEalsLogEvent.Date набраноDateTime:

public ObservableCollection<EalsLogEvent> LogEvents 
{
    get
    {
        return _logEvents;
    }
}

Модель обновления сетки использует таймер для обновления, и все выглядит нормально с сеткой, кроме тех случаев, когда она загружается впервые при запуске приложения. ТогдаTime Столбец сортируется по убыванию, но сортируется по возрастанию.

Для правильной сортировки я должен дважды щелкнуть заголовок столбца; первый раз изменяет порядок на возрастающий, который теперь соответствует содержимому столбца. Второй щелчок по заголовку столбца изменяет порядок сортировки обратно на нисходящий, и на этот раз он сортирует содержимое столбца должным образом, то есть по убыванию.

Если я использую LINQ, чтобы заказать коллекцию, когда_logEvents обновляясь, я теряю тот порядок, который пользователь установил для столбца, щелкая его заголовок. Если мне нужно, чтобы представление сообщило модели, в каком порядке следует использовать сортировку LINQ, что-то пахнет плохо.

Ответы на вопрос(1)

Ваш ответ на вопрос