如何使用mvvmcross从xamarin android中的IMvxAndroidViewPresenter获取视图实例

时间:2018-06-05 14:41:49

标签: mvvm xamarin.android mvvmcross

如何从viewpresenter获取视图。

var viewpresenter = Mvx.Resolve<IMvxAndroidViewPresenter>();
viewpresenter.Show(new MvxViewModelRequest(typeof(IVP), null, null, null));

感谢。

1 个答案:

答案 0 :(得分:1)

我不确定您要执行的操作,但是您要执行导航的代码。在这种情况下,您应该使用Navigation service(要求Mvx&gt; = 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;

HIH