MvvmCross CloseTo 视图模型
MvvmCross CloseTo ViewModel
在 MvvmCross 中有没有办法让导航服务关闭特定的 viewModel?
例如,假设我有 3 个视图模型
A B C
我已经从 A 导航到 B 再到 C。
A -> B -> C
在 C 视图中,我按下了完成按钮并想返回视图 A。
有没有办法在 C viewModel 中做这样的事情?
_navigationService.Close<A>(this);
如果你在 Xamarin.Forms
(如果不让我知道,我会更新答案,因为它不是那么简单),在 IMvxNavigationService
你有 ChangePresentation(...)
方法它使用提示对象告诉框架你想做什么。
Task<bool> ChangePresentation(MvxPresentationHint hint, CancellationToken cancellationToken = default(CancellationToken));
Here 您有框架提供的不同 out-of-the-box 提示。
要解决您的问题,您只需使用 MvxPopPresentationHint
:
_navigationService.ChangePresentation(new MvxPopPresentationHint(typeof(A)));
或者如果 A
是您的根 ViewModel,您可以只使用 MvxPopToRootPresentationHint
:
_navigationService.ChangePresentation(new MvxPopToRootPresentationHint());
高
在 MvvmCross 中有没有办法让导航服务关闭特定的 viewModel?
例如,假设我有 3 个视图模型
A B C
我已经从 A 导航到 B 再到 C。
A -> B -> C
在 C 视图中,我按下了完成按钮并想返回视图 A。
有没有办法在 C viewModel 中做这样的事情?
_navigationService.Close<A>(this);
如果你在 Xamarin.Forms
(如果不让我知道,我会更新答案,因为它不是那么简单),在 IMvxNavigationService
你有 ChangePresentation(...)
方法它使用提示对象告诉框架你想做什么。
Task<bool> ChangePresentation(MvxPresentationHint hint, CancellationToken cancellationToken = default(CancellationToken));
Here 您有框架提供的不同 out-of-the-box 提示。
要解决您的问题,您只需使用 MvxPopPresentationHint
:
_navigationService.ChangePresentation(new MvxPopPresentationHint(typeof(A)));
或者如果 A
是您的根 ViewModel,您可以只使用 MvxPopToRootPresentationHint
:
_navigationService.ChangePresentation(new MvxPopToRootPresentationHint());
高