从MainView导航到另一个视图

时间:2011-09-02 16:08:34

标签: wpf wpftoolkit

我是WPF新手,我正在使用WPF Model-View-ViewModel Toolkit 0.1来获取WPF。

我有一个相当简单的问题,但我无法理解它。

如何从主视图上的菜单项显示新视图?

这就是我的代码的样子:

MainView.xaml

<Menu DockPanel.Dock="Top">
   <MenuItem Header="_File">
      <MenuItem Command="{Binding NewPage}" Header="New Page" 
                                   InputGestureText="Ctrl-N" />
   </MenuItem>
</Menu>

MainViewModel.cs

private DelegateCommand newPageCommand;

    public ICommand NewPage
    {

        get
        {

            if (newPageCommand == null)
            {
                newPageCommand = new DelegateCommand(GoToNewPage);
            }
            return newPageCommand;
        }
    }


    private void GoToNewPage()
    {
      ???
    }

我在GoToNewPage中写什么来显示newPage.xaml?

1 个答案:

答案 0 :(得分:1)

通常,您的应用程序完全在ViewModel中运行,而Views用于允许用户以友好的方式与ViewModel进行交互。

在您的情况下,ViewModel可能有一个名为CurrentPage的属性,该属性绑定到视图中的ContentControl.Content。要更改页面,GoToNewPage命令会将CurrentPage属性设置为NewPageViewModel

这会导致ContentControl意识到它的绑定已经改变,并且在更新绑定的过程中,它会意识到Content已经改变并且需要使用新的{{1}绘制内容。

DataTemplate

如果您有兴趣,我有一个简单的例子here

相关问题