Как изменить контекст в WPF - PullRequest
1 голос
/ 29 ноября 2011

Я разрабатываю свое первое приложение WPF с использованием MVVM для своего рода киоска в полноэкранном режиме. Мне нужно изменить контекст (просмотр видео, просмотр текста, просмотр powerpoint) в ответ на асинхронное событие.

Мне трудно, потому что я определил следующие контексты данных в MVVM, но пока не смог переключиться между ними:

<Window.Resources>
    <DataTemplate DataType="{x:Type vm:VideoViewModel}">
        <v:VideoView />
    </DataTemplate>
    <DataTemplate DataType="{x:Type vm:PowerpointViewModel}">
        <v:PowerpointView />
    </DataTemplate>
</Window.Resources>

Любая помощь будет оценена, спасибо.

1 Ответ

0 голосов
/ 29 ноября 2011

Обычно у меня есть ShellViewModel, который содержит свойство CurrentPage, которое содержит ViewModel текущей страницы.В XAML я привяжу ContentControl.Content к CurrentPage, а затем, чтобы переключить представление, я просто переключаю свойство CurrentPage на то, что ViewModel должно быть текущим.

<ContentControl Content="{Binding CurrentPage}" />

Команда изменения страницы:

void ChangePage(ViewModelBase page)
{
    CurrentPage = page;
}

Например, см. этот пост моего

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