有沒有辦法將BackKeyPressed事件連接到視圖中的命令(XAML)?我正在使用MVVM Light。用於XAML中BackKeyPress的掛鉤命令
我有幾個可能會顯示的登錄/註冊屏幕。如果他們在登錄/註冊過程中顯示/隱藏用戶控件,我希望能夠攔截後退按鈕,以便顯示/隱藏適當的控件。
有沒有辦法將BackKeyPressed事件連接到視圖中的命令(XAML)?我正在使用MVVM Light。用於XAML中BackKeyPress的掛鉤命令
我有幾個可能會顯示的登錄/註冊屏幕。如果他們在登錄/註冊過程中顯示/隱藏用戶控件,我希望能夠攔截後退按鈕,以便顯示/隱藏適當的控件。
請注意,我不熟悉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>
您可能可以通過編寫自的PhoneApplicationPage繼承和暴露了一個公共事件,然後你自己的BasePage類做這個觸發事件在override OnBackKeyPress
方法
在您的自定義頁面,你然後可以繼承新的BasePage類而不是PhoneApplicationPage,然後可以希望將該事件綁定到XAML中的命令。但是,在這種特殊情況下,我想我可能會試圖使用C#而不是XAML--例如,調用直接在OnBackKeyPress執行
這並不工作。有沒有辦法讓事件參數傳入?我嘗試了'BackKeyPressCommand = new RelayCommand(BackKeyPress);'但是當它碰到'BackKeyPress'方法時事件參數是'null'。 –
2011-03-19 22:35:52
當命令被觸發時,我想取消事件'e.Cancel = true;'。 – 2011-03-19 22:55:56
只需將'PassEventArgsToCommand =「True」'添加到'EventToCommand'。 – ceyko 2011-03-19 23:16:19