It is possible that the GUI is not updated, and the column hidden, until after the program reaches your event loop. You do not say if the column is actually hidden or what "does not work any more" actually means.

Hiding columns in a view is unrelated to adding/removing columns in the model. As long as the model correctly announces the column changes then the view should follow automatically. Is this a custom model?