在mvvm light ViewModel(WP7)中拦截OnBackKeyPress事件

时间:2012-06-26 22:14:08

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

在我的Windows Phone应用程序中,我有以下场景:

  1. 我有两个ListBox'es f.e lbx1和lbx2
  2. ViewModel将数据加载到lbx1
  3. 用户点击ListBox,触发命令,ViewModel将lbx1的可见性设置为折叠,将lbx2设置为visilbe。
  4. 现在我想做以下事情:当lbx2可见时,我想拦截My ViewModel中的OnBackKeyPress事件,以便我可以将lbx1的可见性更改为可见,并将lbx2更改为折叠。

    mvvm.light甚至可以吗?

1 个答案:

答案 0 :(得分:2)

好的,找到了答案: 在page.xaml中插入:

<i:Interaction.Triggers>
    <i:EventTrigger
        EventName="BackKeyPress">
        <GalaSoft_MvvmLight_Command:EventToCommand
            Command="{Binding BackKeyPressCommand}"
            PassEventArgsToCommand="True"
            />
    </i:EventTrigger>
</i:Interaction.Triggers>

其中Command是我的ViewModel命令,而PassEventArgsToCommand =“True”使我能够在事件被触发时取消事件