WPF MVVM是否可以在不按按钮的情况下切换视图?

时间:2020-10-01 00:50:43

标签: wpf xaml mvvm view viewmodel

我对WPF和MVVM意识形态非常陌生,并且正在使用它创建应用程序。因此,据我了解,通过阅读此WPF-MVVM Pattern Guide,我们获得了:

  1. 一个窗口,通过中继命令可以在视图之间进行导航,
  2. 某些视图,它们是XAML文件,以某种方式(例如,按 按钮),使用Command来调用其中的方法
  3. 我们的ModelViews,可处理视图的大部分逻辑。

要从View1切换到View2,在View 1中,我们可能将一个Command附加到一个告诉我们加载View2的按钮上,

VIEW1

    <StackPanel>
           Button<
                Command="{Binding DoSomeWorkInModalView1}"
           />
    </StackPanel>

    <StackPanel Visibility="{Binding VariableInModalView1ThatNeedsToBeSet, Converter={StaticResource BooleanToVisibilityConverter}}">
           Button<
                Command="{Binding MethodThatLoadsView2}"
           />
    </StackPanel>

MODALVIEW1

    DoSomeWorkInModalView1(){
         //Doing some work here...
         VariableInModalView1ThatNeedsToBeSet = true;
    }

或类似的东西。按下按钮后,ViewModal1会执行一些工作并将VariableInModalView1ThatNeedsToBeSet设置为true,因此我们可以看到我们的按钮,现在可以按下它进入View2。太好了,所有这些在我的应用程序中都有效。

我需要做的是当该StackPanel变得可见时,调用MethodThatLoadsView2而不必按下按钮。换句话说,将VariableInModalView1ThatNeedsToBeSet设置为true时,我们将加载View2而不是等待用户按下按钮,就像在React中一样,useEffect()可以立即用于执行一些逻辑加载组件时。

抱歉,这有点含糊,如果您有任何疑问,请告诉我。谢谢!

0 个答案:

没有答案