From what I understand, when you are overriding the PaintCellValue, you need to make sure that it returns True otherwise, the cell will continue to paint the value which is a ToString() of the dataType in this case.
From the help file :
true if the viewer painted the cell’s content; false if the viewer was not able to paint the cell’s content and wants the cell to paint itself.
Imported from legacy forums. Posted by Matt (had 3033 views)