Изменение основной области просмотра - PullRequest
0 голосов
/ 10 января 2012

Мне интересно, как создать разные виды в главном окне, когда нажата кнопка.Я не уверен в правильной терминологии, так что это помешало моему Google Fu.

Я думаю, что основной областью просмотра будет элемент управления контентом, который я мог бы изменить, когда произойдет событие.Я сделал небольшой рисунок, чтобы проиллюстрировать мою идею / мысль.

Любой вклад будет оценен.Спасибо!Crude Mockup

Ответы [ 2 ]

5 голосов
/ 11 января 2012

Было бы действительно легко реализовать этот senario, используя подход MVVM ....

Сделайте ViewModel для вас MainView.Затем определите свойства ViewModels ваших UserControls

. Например, у вас есть два UserControl как FirstView и SecondView, затем создайте свойства в ваших viewmodels как ViewToLoadProperty типа ViewModel (обычно называемый ViewModelBase)

Установить привязки как

        <!--  Panel For Hosting UserControls  -->
        <Border Grid.Column="2">
            <ContentControl Name="userControlContentControl"
                            Content="{Binding Path=ViewToLoadProperty,
                                              }">
                <ContentControl.Resources>
                    <DataTemplate DataType="{x:Type ViewModelLayer:FirstViewModel}">
                        <ViewLayer:FirstView/>
                    </DataTemplate>
                    <DataTemplate DataType="{x:Type ViewModelLayer:SecondViewModel}">
                        <ViewLayer:SecondView />
                    </DataTemplate>
                                        </ContentControl.Resources>
            </ContentControl>
        </Border>
        <!--  Panel For Hosting UserControls  -->

Затем, когда вы нажимаете кнопку Используйте команду, чтобы установить соответствующий Интервал ViewModel для этого свойства (ViewToLoadProperty) ... (Использовать RelayCommannds или что-то подобноеэто)

DataTempates выполнит оставшуюся часть работы, выбрав правильный вид в соответствии с правильным типом ViewModel

Вы можете использовать MVVMLight toolkit, если вы реализуете MVVM Pattern ..:)

2 голосов
/ 10 января 2012

Справа у вас может быть рамка. Затем кнопка будет привязывать другую страницу или пользовательский элемент управления к содержимому этого фрейма.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...