如何使用ViewModel在视图中按下按钮

时间:2016-11-10 21:16:08

标签: c# wpf mvvm

我是WPF的新手,我知道ViewModel与View没有任何通信。我试图在我的应用程序中遵循MVVM模式,我想使用ViewModel按下View中的按钮。例如:成功登录后,我想在视图中显示一个特定的网格。这也可以通过按下' X'按钮&#39 ;.当' X'按钮具有焦点,它将显示以下网格。

        ..<Grid.Style>
            <Style TargetType="Grid">
                <Style.Triggers>
                    <DataTrigger Binding="{Binding IsFocused, ElementName=X}"
                             Value="False">
                        <Setter Property="Visibility" Value="Collapsed"/>
                    </DataTrigger>
                 <Style.Triggers>
            </Style>
        </Grid.Style>..

鉴于这种情况,我如何使用ViewModel显示此网格?

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:0)

您可以通过执行绑定到按钮的CommandICommand类型的命令)来“按下”按钮。这不会给按钮按下任何视觉指示,但会在后台产生相同的效果。您还可以将属性绑定到网格的IsFocused属性,以通过更改ViewModel中的属性来切换可见性。

答案 1 :(得分:0)

您可以将按钮的IsFocused属性绑定到viewmodel上的属性。用户成功登录后,将viewmodel中的IsFocused属性设置为适当的值。

在MVVM中,ViewModel是View的状态。你声明,&#34; ViewModel与View&#34;没有任何关系。是不正确的。 View和ViewModel&#39; talk&#39;通过绑定。 WPF内置的绑定引擎非常强大,它不仅可以绑定到可视树中的不同元素,还可以绑定到DataContext上的公共属性。

请参阅有关如何从代码设置IsFocused属性的相关问题 - Related Question

希望有所帮助。