【发布时间】:2018-06-05 14:41:49
【问题描述】:
如何从 viewpresenter 获取视图。
var viewpresenter = Mvx.Resolve<IMvxAndroidViewPresenter>();
viewpresenter.Show(new MvxViewModelRequest(typeof(IVP), null, null, null));
谢谢。
【问题讨论】:
标签: mvvm xamarin.android mvvmcross
如何从 viewpresenter 获取视图。
var viewpresenter = Mvx.Resolve<IMvxAndroidViewPresenter>();
viewpresenter.Show(new MvxViewModelRequest(typeof(IVP), null, null, null));
谢谢。
【问题讨论】:
标签: mvvm xamarin.android mvvmcross
我不确定你想做什么,但你想从你的代码中执行导航。在这种情况下,您应该使用 Navigation service(需要 Mvx >= 5,否则使用 ShowViewModel 中的 ViewModel/MvxNavigatingObject)并像这样使用它:
var navigationService = Mvx.Resolve<IMvxNavigationService>();
await navigationService.Navigate<MyViewModel>();
如果您想要自定义导航,只需调用
await navigationService.ChangePresentation(new MyCustomPresentationHint());
并在您的自定义演示者中覆盖 ChangePresentation(MvxPresentationHint hint) 以添加您的自定义演示逻辑。
Presenter 不是用来解决它并直接使用它,而是通过导航服务。
Here是Android Presenter的源码,从中可以看出不能直接获取当前视图。如果您想知道您当前的活动,您可以使用
var currentActivity = Mvx.Resolve<IMvxAndroidCurrentTopActivity>().Activity;
嗨
【讨论】: