1

我在我的 Windows Phone 8 应用程序中使用 Caliburn Micro,我想在用户退出应用程序之前按下后退按钮时提示用户。是的,我确实有充分的理由这样做!

我试过这段代码,但在应用程序退出后它会被调用。

    private void _navigationService_Navigating(object sender, NavigatingCancelEventArgs e)
    {
        if (e.NavigationMode == NavigationMode.Back)
        {
            if (MessageBox.Show("Are you sure?", "Exit App", MessageBoxButton.OKCancel) == MessageBoxResult.Cancel)
            {
                e.Cancel = true;
            }           
        }
    }

有任何想法吗?

4

2 回答 2

1

我认为您使用了错误的事件,我的建议是:

 protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)
    {
           if (!NavigationService.CanGoBack)
            {
                if (MessageBox.Show("Are you sure?", "Exit App", MessageBoxButton.OKCancel) == MessageBoxResult.Cancel)
                 {
                  e.Cancel = true;
                 }     
            }            
    }
于 2013-06-05T07:04:07.570 回答
0

在您的视图中使用它

micro:Message.Attach="[Event BackKeyPress] = [Action OnGoBack($eventArgs)]"

并在您的 ViewModel 中创建一个 OnGoBack($eventArgs)

public void OnGoBack(CancelEventArgs eventArgs)
{
    if (MessageBox.Show("Are you sure?", "Exit App", MessageBoxButton.OKCancel) == MessageBoxResult.Cancel)
        {
            e.Cancel = true;
        }
}  
于 2014-02-11T22:01:27.793 回答