Como alternar entre visualizações usando o DataTemplate + Triggers

Tenho um requisito em que um usuário em que pode alternar para exibir dados hierárquicos como árvore ou como texto no datagrid ou como FlowChar

O usuário pode fazer isso clicando em um botão de alternância que diz: Alternar modo. Quero fazer tudo isso de forma que ele possa ser tratado dentro da View apenas porque o ViewModel nos três casos é o mesm

Como aplico o View ao meu ViewModel com base no Trigger.

questionAnswers(2)

yourAnswerToTheQuestion