在XAML中为BackKeyPress执行连接命令

时间:2011-03-19 18:25:41

标签: xaml windows-phone-7 mvvm-light

有没有办法将BackKeyPressed事件连接到视图中的命令(XAML)?我正在使用MVVM Light。

我有一些可能会显示的登录/注册屏幕。如果他们在登录/注册过程中,这只是显示/隐藏用户控件,我希望能够拦截后退按钮,这样我就可以显示/隐藏适当的控件。

2 个答案:

答案 0 :(得分:6)

请注意,我不熟悉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>

答案 1 :(得分:0)

可能能够通过编写自己的继承自PhoneApplicationPage并暴露公共事件的BasePage类来实现此目的,然后在override OnBackKeyPress方法中触发该事件

在您的自定义页面中,您可以继承新的BasePage类而不是PhoneApplicationPage,然后可以将该事件绑定到XAML中的命令。

然而,在这种特殊情况下,我想我可能会想要使用C#而不是XAML - 例如直接在OnBackKeyPress中调用Execute