add/remove columns dialog

What is the best way to have table with multiple columns that the user can select wich columns it’s appear during execution. I saw property group and label in standard column (for add/remove columns dialog) but have no clue how it’s works.