2011-03-19 41 views
1

有沒有辦法將BackKeyPressed事件連接到視圖中的命令(XAML)?我正在使用MVVM Light。用於XAML中BackKeyPress的掛鉤命令

我有幾個可能會顯示的登錄/註冊屏幕。如果他們在登錄/註冊過程中顯示/隱藏用戶控件,我希望能夠攔截後退按鈕,以便顯示/隱藏適當的控件。

回答

6

請注意,我不熟悉WP7的發展,但我相信MVVM光處理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

這並不工作。有沒有辦法讓事件參數傳入?我嘗試了'BackKeyPressCommand = new RelayCommand (BackKeyPress);'但是當它碰到'BackKeyPress'方法時事件參數是'null'。 – 2011-03-19 22:35:52

+0

當命令被觸發時,我想取消事件'e.Cancel = true;'。 – 2011-03-19 22:55:56

+0

只需將'PassEventArgsToCommand =「True」'添加到'EventToCommand'。 – ceyko 2011-03-19 23:16:19

0

可能可以通過編寫自的PhoneApplicationPage繼承和暴露了一個公共事件,然後你自己的BasePage類做​​這個觸發事件在override OnBackKeyPress方法

在您的自定義頁面,你然後可以繼承新的BasePage類而不是PhoneApplicationPage,然後可以希望將該事件綁定到XAML中的命令。但是,在這種特殊情況下,我想我可能會試圖使用C#而不是XAML--例如,調用直接在OnBackKeyPress執行