2014-02-05 91 views
0

注:這是一個不同的問題在這裏什麼人Pass dependency property to child viewMVVM通按鈕,點擊父

我目前創建WPF中的一個usercontrol它由幾個「屏幕」,用戶將通過點擊的。

對於每個「屏幕」,我都創建了一個具有自己的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

您需要在單擊按鈕時觸發的每個視圖中創建一個事件,如「OnButtonClicked」,然後您的用戶控件可以註冊該事件 – musefan

回答

0

如果您使用的是MVVM和WPF,那麼很可能您正在使用IoC容器。幾乎每個IoC容器都包含一個發佈事件並訂閱該事件的方法。在棱鏡,代碼看起來像這樣:

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

我建議你看看你的選擇發佈事件和對他們作出反應。然後,您的父視圖模型可以響應兒童的事件。