【问题标题】:How to get the view instance from IMvxAndroidViewPresenter in xamarin android using mvvmcross如何使用 mvvmcross 从 xamarin android 中的 IMvxAndroidViewPresenter 获取视图实例
【发布时间】: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


    【解决方案1】:

    我不确定你想做什么,但你想从你的代码中执行导航。在这种情况下,您应该使用 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&lt;IMvxAndroidCurrentTopActivity&gt;().Activity;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-04
      相关资源
      最近更新 更多