Caliburn微停app退出

时间:2013-06-05 04:12:28

标签: windows-phone-8 caliburn.micro

我在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;
            }           
        }
    }

有什么想法吗?

2 个答案:

答案 0 :(得分: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;
                 }     
            }            
    }

答案 1 :(得分: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;
        }
}