我正在使用MaterialDesign for WPF处理WPF应用程序。 我创建了包含导航抽屉的MainWindow。 这是MainWindow的XAML:
<materialDesign:DialogHost>
<materialDesign:DrawerHost IsLeftDrawerOpen="{Binding IsChecked, ElementName=MenuToggleButton}">
<materialDesign:DrawerHost.LeftDrawerContent>
<!--Drawer content-->
</materialDesign:DrawerHost.LeftDrawerContent>
<!-- Here is my Content-->
<ContentControl Name="ContentControl"/>
</materialDesign:DrawerHost>
</materialDesign:DialogHost>
在MainWindow的ViewModel中,我添加了OnMenuItemSelected方法 将新内容设置为ContentControl,如下所示:
public void OnMenuItemSelected(object menuItem)
{
var itemName = (DrawerMenuItem)menuItem;
switch (itemName)
{
case DrawerMenuItem.Home:
var window = new ProceduresWindow();
_contentControl.Content = window.Content;
break;
//others
}
}
在上面的示例中,当我单击HomeControl的内容按钮时,ContentControl的内容应该替换为此示例ProcedureWindow中的另一个Window。 新的ProcedureWindow在XAML中设置了DataContext,如下所示:
<Window.DataContext>
<windows:ProceduresViewModel></windows:ProceduresViewModel>
</Window.DataContext>
内容正在替换正确但ViewModel无效。任何人都知道如何解决这个问题?