注意:这是与此处不同的问题: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>
我想将视图中的按钮单击返回到父用户控件,以便我可以隐藏该视图并显示下一个视图。有人可以向我解释如何做到这一点吗?
谢谢!
答案 0 :(得分:0)
如果您使用的是MVVM和WPF,则可能正在使用IoC容器。几乎每个IoC容器都包含一个发布事件然后订阅该事件的方法。在Prism中,代码看起来像这样:
EventAggregator.GetEvent<SomeEvent>().Publish(ParametersHere)
我建议您查看发布事件并对其做出反应的选项。然后您的父视图模型可以响应孩子的事件。