Команда подключения для BackKeyPress в XAML - PullRequest
1 голос
/ 19 марта 2011

Есть ли способ подключить событие BackKeyPressed к команде в представлении (XAML)? Я использую MVVM Light.

У меня есть несколько экранов входа / регистрации, которые могут быть показаны. Если они находятся в процессе входа / регистрации, который просто показывает / скрывает пользовательские элементы управления, я хочу иметь возможность перехватить кнопку «Назад», чтобы показать / скрыть соответствующий элемент управления.

Ответы [ 2 ]

6 голосов
/ 19 марта 2011

Обратите внимание, что я не знаком с разработкой WP7, но я полагаю, что MVVM Light обрабатывает WPF4 и WP7 аналогично:

<PhoneApplicationPage
    xmlns:Command="clr-namespace:GalaSoft.MvvmLight.Command;assembly=GalaSoft.MvvmLight.Extras.WP7"
    xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity">
    <Interactivity:Interaction.Triggers>
        <Interactivity:EventTrigger
            EventName="BackKeyPress">
            <Command:EventToCommand
                Command="{Binding BackKeyPressCommand}" />
        </Interactivity:EventTrigger>
    </Interactivity:Interaction.Triggers>
</PhoneApplicationPage>
0 голосов
/ 19 марта 2011

Вы могли бы быть в состоянии сделать это, написав свой собственный класс BasePage, который наследуется от PhoneApplicationPage и который предоставляет публичное событие, и который затем запускает это событие в методе override OnBackKeyPress

* 1005.* На своей пользовательской странице вы можете затем наследовать новый класс BasePage вместо PhoneApplicationPage и, возможно, затем связать это событие с командой в XAML.

Однако в этом конкретном случае, я думаю, у меня может возникнуть искушениеиспользовать C # вместо XAML - например, вызывая Execute напрямую в OnBackKeyPress

...