Динамический интерфейс WPF

Я новичок в 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>

Ответы (0 шт):