BestFitColumns is a great way to stretch/narrow your columns based on the data they contain.
There are a few issues when using this. My suggestion deals with one of them.
Suggestion: When using BestFitColumns, please add a new optional Parameter called "PadWidth" or something similar. This would be an Integer value and when the BestFitColumns executes, it will add "PadWidth" pixels to the width of the column AFTER calculating the 'Best Fit' width.
Reason: Several Themes will accurately "squeeze" column width's so they JUST BARELY fit the Column Data. While this may be the desired output, it's rather unpleasant to look at: The data is smashed right up against both left and right cell borders. Additionally, some themes have a 2 or more pixel, Cell FOCUSED border (I don't know what to call it. The 'cursor' perhaps? The visual indicator of what Cell the user is currently on.
Anyway, as you move this 'Cursor' if you navigate to a cell where the data was the widest, this thicket "border" takes up too much room in the cell to display the entire string, and so you're back to seeing Ellipses instead of the entire data.
By adding an Optional "PadWidth" value (I'll use 10 for example) AFTER the BestFit width has been calculated but before that is applied to all columns, the cell width will gain an additional 10 pixels. This will allow for the extra-wide Cell "cursors" as well as allow developers to create less "cramped" grids.