我试图使用MVVM模式在视图之间建立导航.我的应用程序包含一个MainWindow和两个视图,每个视图都有一个按钮.当我单击View1中的按钮时,我想在MainWindow上设置View2.
我找到了几个教程,解释了如何通过主窗口上的按钮(模拟tabControl)从一个视图导航到另一个视图,它可以工作,但它不是我想要的.
我正在寻找类似的东西:
View1_View.xaml.cs:
public partial class View1_View : UserControl
{
private View1_ViewModel _viewModel = new View1_ViewModel();
public View1_View()
{
InitializeComponent();
}
private void Btn_SwitchToView2_Click(object sender, RoutedEventArgs e)
{
MainWindow.SwitchToView2();
}
}
Run Code Online (Sandbox Code Playgroud)
MainWindow.xaml.cs:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
this.DataContext = new View1_View();
}
public void SwitchToView2()
{
this.DataContext = new View2_View();
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是如果我这样做,从类View1_View我不能访问方法SwitchToView2()如果它不是静态的,如果它是静态的我丢失了MainWindow的上下文.
我该怎么办?谢谢.