I'm not quite sure how to go about this so any advice would be much appreciated.

I have a ListView whose default implementation is using with column headers. At runtime in the program I would like to be able to click on a button at runtime to change the view so that the list view loses the GridViewColumn headers and implements a new style using one of my own data template. 

Then I would also like the ability to click the button and change the ListView back to a grid view with column headers. 

Can anyone point me in the correct direction of how to go about this? 

Thanks