我正在尝试使用MVVM模式在视图之间设置导航。我的应用程序包含一个MainWindow和两个带有按钮的视图。当我点击View1中的按钮时,我想在MainWindow上设置View2。
我找到了几个教程,它们解释了如何使用主窗口上的按钮从一个视图导航到另一个视图(模拟TabControl),它可以工作,但这不是我想要的。
我正在寻找像这样的东西:
View1_View.xaml.cs:
我找到了几个教程,它们解释了如何使用主窗口上的按钮从一个视图导航到另一个视图(模拟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();
}
}
MainWindow.xaml.cs :
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
this.DataContext = new View1_View();
}
public void SwitchToView2()
{
this.DataContext = new View2_View();
}
}
我的问题是,如果我这样做,从类中,如果方法不是静态的,则无法访问它,如果它是静态的,我将失去MainWindow的上下文。
我该怎么办? 谢谢。
this.DataContext = new View2_View();
应该指向一个 viewmodel 而不是一个视图,如果你要遵循 MVVM。 - user585968