排序Observable Collection错误排序

时间:2011-08-20 13:01:33

标签: wpf vb.net observablecollection

我有一个绑定到ListBox的WPF ObservableCollection,我有一个Sort()方法,调用它时会将ObservableCollection转换为List(Of T),并根据日期/时间列进行排序。集合。

即使将新项目添加到ObservableCollection,数据也会被排序,但日期/时间未正确排序。数据基于日期进行排序,但是当涉及到时间部分时,它是非常随机的。以下是我遇到的结果的一个例子:

Record-----Start Date
1          22/08/2011 22:00
3          22/08/2011 22:30
4          22/08/2011 14:00
2          22/08/2011 09:00
5          22/08/2011 21:00

在上面的例子中,记录5是最近添加的,它是在初始绑定后添加的。

我的Sort()方法如下:

Public Sub Sort()
  Dim SortedList As List(Of meetingDetails) = MyBase.ToList
  SortedList.Sort(New Comparison(Of meetingDetails)(Function(x As meetingDetails, _
                           y As meetingDetails)String.Compare(x.eStart, y.eStart)))
  For Each Item As meetingDetails In SortedList
    Move(IndexOf(Item), SortedList.IndexOf(Item))
    Next
End Sub

我在这种方法中做错了什么导致时间部分不包含在排序中?有更好的方法进行排序吗?

谢谢,

马特

1 个答案:

答案 0 :(得分:1)

您似乎在使用String.Compare而不是DateTime.Compare,尝试更改它并查看排序是否有效