Xamarin 如何取消MvvmCross 6.x中的导航?

Xamarin 如何取消MvvmCross 6.x中的导航?,xamarin,mvvmcross,Xamarin,Mvvmcross,我正在将MVVMCross 4.x应用程序转换为MVVMCross 6.x 以前,如果我想截取视图模型的显示并取消它,那么我将对MvxViewPresenter进行子类化,并覆盖任务显示(MvxViewModelRequest请求)方法。我正在努力寻找MvvmCross 6.0中的等价物 我已尝试挂接到Mvx.IoCProvider.Resolve().BeforeNavigate事件,但在Prepare()和Initialize()视图模型方法之后会调用它 如何在调用ViewModel.Ini

我正在将MVVMCross 4.x应用程序转换为MVVMCross 6.x

以前,如果我想截取视图模型的显示并取消它,那么我将对MvxViewPresenter进行子类化,并覆盖
任务显示(MvxViewModelRequest请求)
方法。我正在努力寻找MvvmCross 6.0中的等价物

我已尝试挂接到
Mvx.IoCProvider.Resolve().BeforeNavigate
事件,但在
Prepare()
Initialize()
视图模型方法之后会调用它


如何在调用
ViewModel.Initialize()
方法并取消导航之前拦截调用?

为什么不能拦截Show方法?它仍然在那里。我可以截取它,但它是在ViewModel.Initialize()之后调用的。以前它是在VIewModel.Init()之前调用的(事实上我认为它是在VIewModel构造函数之前调用的)LoadViewModel将在您调用
NavigationService.Navigate
时立即被调用,因此它确实是可能的:这将触发很多生命周期。你能描述一个更具体的用例吗?我不明白为什么这会有用。应用程序中有很多地方可以显示“输入表单视图”。根据用户权限(和其他逻辑),我希望拦截调用,而不是显示输入表单,而是显示一个对话框。为什么不在第一个ViewModel中显示该逻辑,以便在未通过检查的情况下不会转到下一页?为什么不能拦截Show方法?它仍然在那里。我可以截取它,但它是在ViewModel.Initialize()之后调用的。以前它是在VIewModel.Init()之前调用的(事实上我认为它是在VIewModel构造函数之前调用的)LoadViewModel将在您调用
NavigationService.Navigate
时立即被调用,因此它确实是可能的:这将触发很多生命周期。你能描述一个更具体的用例吗?我不明白为什么这会有用。应用程序中有很多地方可以显示“输入表单视图”。根据用户权限(和其他逻辑),我希望拦截调用,而不是显示输入表单,而是显示一个对话框。为什么不在第一个ViewModel中显示该逻辑,以便在未通过检查的情况下不会转到下一页?