mvvm Pass按钮单击父级

时间:2014-02-05 15:45:37

标签: wpf xaml mvvm

注意:这是与此处不同的问题:Pass dependency property to child view

我目前正在wpf中创建一个用户控件,其中包含用户将点击的几个“屏幕”。

对于每个“屏幕”,我使用自己的viewmodel创建了一个视图(例如View1.xaml,View2.xaml)。然后,主用户控件可以访问这些视图:

<UserControl.Resources>
    <local:ModuleBaseViewModel x:Key="ViewModelDataSource" />
</UserControl.Resources>

<Grid x:Name="LayoutRoot" DataContext="{Binding Source={StaticResource ViewModelDataSource}}">
    <local:View1 Visibility="Visible"/>
    <local:View2 Visibility="Hidden"/>
</Grid>

我想将视图中的按钮单击返回到父用户控件,以便我可以隐藏该视图并显示下一个视图。有人可以向我解释如何做到这一点吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

如果您使用的是MVVM和WPF,则可能正在使用IoC容器。几乎每个IoC容器都包含一个发布事件然后订阅该事件的方法。在Prism中,代码看起来像这样:

EventAggregator.GetEvent<SomeEvent>().Publish(ParametersHere)

我建议您查看发布事件并对其做出反应的选项。然后您的父视图模型可以响应孩子的事件。