Has anyone notices this behavior?

I have a composite control that contains a listview. I've created my
own listviewsorter class that works just fine. As items get added (in
this case - a very small #, less than 40), I repaint all items
background to white, sort, and perform a colorization.

The code was supposed to colorize some things in an alternating
pattern, but i noticed sometimes it wasn't alternating. What I found
was although my colorization colored the correct items - the sort
wasn't happening until the parent that housed the composite control got
redrawn!!!

I tried a Refresh, an Update, a ResumeLayout, RedrawItems, etc. Nothing
got this to work with the listview. I did code around it myself with a
sortedList, but I find it odd that when I call ListView.Sort it just
seems to queue up the sort for the next paint operation.

Am I mistaken? Does anyone know how this really works?