Many thanks for your quick & informative reply. I have decided to buy the product.
However, re. 3) it looks like I do have to apply the HeaderText & CellType changes each time. Using the firstTime bool method results in the HeaderText & celltype changing back to the default after the Datasource is reset.
Regards,
Mick
>Here is your sample back with your code tweaked a little to avoid the problems you listed. There are comments in the code.
>
>1) Sorting causes IBlindingList.ListChanged to fire with a Reset. The grid responds by cancelling any BeginUpdate so it can respond and redraw teh grid required by Reset. This is way you are seeing the major flickering. One solution as implemented in the returned sample is to just do the sort before you set the datasource. (There are other ways to do this, but they require significantly more code than this simple solution if it works for you.)
>
>2) As the grid''s datasource is set, the currencymanager position is attempted to be placed on a valid position in teh table. In this empty case, there is no such valida poistion, and this leads to the problem you are seeing. The wrok-around of setting the DataSource to null resets teh currencymanager as well and avoid the problem. Another solution (that is in teh returned sample), is to explicitly set teh curencymanager position in this case.
>
>3) Not unless the new query has different attribuits. In the returned sample, a firstTime bool value was added so the GridBoundColumns are only set once.
>
>4) No. If you want to do this, you can derive GridBoundColumn, and in its constructor, subscribe to grid.CurrentCellValidating and handle things in that way.
>
testsort_7437.zip
>
>