Ok, well, I answered my own question. I just do a Refresh() and the columns get created.
EDIT: After further examination it looks like the real cause was because a BeginInit() had been done on the DataSet before data binding. By calling EndInit() before data binding the columns are created without a Refresh().
Imported from legacy forums. Posted by cpomer (had 1037 views)