2014-02-05 5 views
0

Примечания: это другой вопрос к одному здесь: Pass dependency property to child viewMVVM Pass нажмите родитель

Сейчас я создающий UserControl в WPF, который состоит из нескольких «экранов», которые пользователь щелкнет через.

Для каждого «экрана» я создал представление с его собственной моделью (например, View1.xaml, View2.xaml). Главный UserControl может затем получить доступ к этим просмотров:

<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> 

Я хотел бы передать нажатие кнопки с точки зрения вниз к родительскому UserControl, так что я могу скрыть эту точку зрения и показать следующий. Может кто-нибудь объяснить мне, как это сделать?

Спасибо!

+0

Вам нужно создать событие в каждом представлении, которое запускается при нажатии кнопки, например, «OnButtonClicked», тогда ваш пользовательский элемент управления может зарегистрироваться на мероприятие – musefan

ответ

0

Если вы используете MVVM и WPF, скорее всего, вы используете контейнер IoC. Почти каждый контейнер IoC содержит метод публикации события, а затем подписывается на это событие. В Призма, код выглядит примерно так:

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

Я хотел бы предложить вам посмотреть на ваши варианты для публикации событий и реагирования на них. Затем модель родительского представления может реагировать на детские события.

Смежные вопросы