Table: Visible columns changed voluntary.

I have Table with set datasource and specified visible columns and column headers. Table’s datasource changes, dependent from selection in another component (so sometimes if has some data, sometimes appropriate container is empty (but not null)). Initially everything is right - but when empty datasource is assigned - table starts to show all columns from object (not only specified). Newl yshown columns use their appropriate fields names as headers, while already specified columns keep their column headers.
What’s wrong with Table? or I’m doing something wrong?