我是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?
答案 0 :(得分:1)
通常,您的应用程序完全在ViewModel中运行,而Views用于允许用户以友好的方式与ViewModel进行交互。
在您的情况下,ViewModel可能有一个名为CurrentPage
的属性,该属性绑定到视图中的ContentControl.Content
。要更改页面,GoToNewPage
命令会将CurrentPage
属性设置为NewPageViewModel
。
这会导致ContentControl
意识到它的绑定已经改变,并且在更新绑定的过程中,它会意识到Content
已经改变并且需要使用新的{{1}绘制内容。
DataTemplate
如果您有兴趣,我有一个简单的例子here