WPF MVVM有没有办法不用按按钮就切换视图?

WPF MVVM有没有办法不用按按钮就切换视图?,wpf,xaml,mvvm,view,viewmodel,Wpf,Xaml,Mvvm,View,Viewmodel,我对WPF和MVVM思想非常陌生,我正在用它创建一个应用程序。据我所知,通过阅读本文,我们有: 窗口,便于通过中继命令在视图之间导航 某些视图是XAML文件,当以某种方式与它们交互时(如按 按钮),使用命令调用中的方法 我们的模型视图,处理视图的大部分逻辑 要从View1切换到View2,在View1中,我们可能会在按钮上附加一个命令,告诉我们加载View2 视图1 或者类似的东西。按下按钮后,ViewModal1会执行一些操作,并将需要设置的ModalView 1中的变量设置为true,这样我

我对WPF和MVVM思想非常陌生,我正在用它创建一个应用程序。据我所知,通过阅读本文,我们有:

  • 窗口,便于通过中继命令在视图之间导航
  • 某些视图是XAML文件,当以某种方式与它们交互时(如按 按钮),使用命令调用中的方法
  • 我们的模型视图,处理视图的大部分逻辑
  • 要从View1切换到View2,在View1中,我们可能会在按钮上附加一个命令,告诉我们加载View2

    视图1

    或者类似的东西。按下按钮后,ViewModal1会执行一些操作,并将需要设置的ModalView 1中的变量设置为true,这样我们可以看到按钮,现在可以按下按钮转到View2。很好,所有这些在我的应用程序中都有效

    我需要做的是,当这个StackPanel可见时,无需按下按钮即可调用加载视图2的方法。换句话说,只要将需要设置的
    VariableInModalView1设置为true,我们就会加载View2,而不是等待用户按下按钮,就像在React中,一旦加载组件,就可以使用useEffect()执行一些逻辑


    对不起,如果这是一个有点模糊,让我知道如果你有任何问题。谢谢

    通常,当您想在应用程序中显示页面时,您会采用类似的方式,并且当您更改代码中的CurrentViewModel属性时,会显示另一个页面。为了能够显示视图模型,您需要定义将当前视图模型转换为视图的数据模板。推荐的模式称为“视图模型优先”。请参阅以下简短示例:。不幸的是,该帖子的作者选择调用他的usercontrols页面。看看wpf是如何被称为页面的。@wotocem:那么,为什么不在设置了需要设置的modalview1中的
    变量之后调用加载视图2的
    方法呢?
    
        <StackPanel>
               Button<
                    Command="{Binding DoSomeWorkInModalView1}"
               />
        </StackPanel>
    
        <StackPanel Visibility="{Binding VariableInModalView1ThatNeedsToBeSet, Converter={StaticResource BooleanToVisibilityConverter}}">
               Button<
                    Command="{Binding MethodThatLoadsView2}"
               />
        </StackPanel>
    
        DoSomeWorkInModalView1(){
             //Doing some work here...
             VariableInModalView1ThatNeedsToBeSet = true;
        }