我在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;
}
}
}
有什么想法吗?
答案 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;
}
}