XAML 中 BackKeyPress 的挂钩命令

发布于 2024-10-24 02:18:04 字数 146 浏览 1 评论 0原文

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

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

Is there a way to hook up the BackKeyPressed event to a command in a view (XAML)? I'm using MVVM Light.

I have a few login/signup screens that can possibly be shown. If they're in the login/signup process, which is just showing/hiding user controls, I want to be able to intercept the back button so I can show/hide the appropriate control.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

妄断弥空 2024-10-31 02:18:04

请注意,我不熟悉 WP7 开发,但我相信 MVVM Light 可以处理 WPF4 和 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>

Note that I'm not familiar with WP7 development, but I believe MVVM Light handles WPF4 & WP7 similarly:

<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>
裸钻 2024-10-31 02:18:04

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

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

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

You might be able to do this by writing your own BasePage class that inherits from PhoneApplicationPage and that exposes a public event, and which then triggers that event in the override OnBackKeyPress method

In your custom page, you can then inherit your new BasePage class instead of PhoneApplicationPage and can then hopefully bind that event to a command in the XAML.

However, in this particular case, I think I might be tempted to use C# rather than XAML - e.g. calling Execute directly in OnBackKeyPress

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文