I observed some behaviour I thought was odd on a listbox which is bound to a list (through setting the datasource property of the listbox). Initially the listbox is bound to list A and displays fine. I then want to sort the list so I create a new list (list B) and sort it, then I reset the listbox.DataSouce to the new list. Upon resetting the DataSource the listbox does not update, sometimes it just keeps displaying the old list, at other times the items disappear (except the scroll bar is still visible). I tracked this down to the fact I set the SelectionMode of the listbox to None, I don't know why this affects the resetting of the datasource, but if I surround my resetting code with .SelectionMode = SelectionMode.One and .SelectionMode = SelectionMode.None then the resetting works fine.
I don't know why this happens but if anyone else comes across this situation I hope this workaround can help out.