我有一个绑定到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
我在这种方法中做错了什么导致时间部分不包含在排序中?有更好的方法进行排序吗?
谢谢,
马特
答案 0 :(得分:1)
您似乎在使用String.Compare
而不是DateTime.Compare
,尝试更改它并查看排序是否有效