Я новичок в WPF, однако ознакомлен с его ключевыми особенностями и паттерном mvvm. Нужно реализовать интерфейс такой : Пусть есть главное меню, допустим кнопка настройки, при нажатии на нее выскакивают уже другие кнопки. Я смотрел в сторону contentControl, а именно в селектор шаблонов. Я сделал подкласс DataTemplateSelector и переопределил метод SelectTemplate. Вопрос : насколько мое решение правильное, можете предложить что-нибудь лучше? И если при изменении св-ва Content у ContentControl вызывается прикрепленный селектор шаблонов, то так как мои шаблоны определены в ресурсах они создаются единственный раз при запуске программы или каждый раз эти кнопки будут создаваться при переключении? 
<Window.Resources>
<DataTemplate x:Key="first">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<Button Grid.Column="0" Height="auto" Width ="auto" Content="1" Click="button_click"></Button>
<Button Grid.Column="1" Height="auto" Width ="auto" Content="2"></Button>
<Button Grid.Column="2" Height="auto" Width ="auto" Content="3"></Button>
</Grid>
</DataTemplate>
<DataTemplate x:Key="second">
<TextBlock>ааааа</TextBlock>
</DataTemplate>
<local:Selector x:Key="selector" First="{StaticResource first}" Second="{StaticResource second}"></local:Selector>
</Window.Resources>
<ContentControl Name="cont" Content="1" ContentTemplateSelector="{StaticResource selector}">
</ContentControl>
</Window>