Как получить экземпляр вида из IMvxAndroidViewPresenter в xamarin android с помощью mvvmcross - PullRequest
0 голосов
/ 05 июня 2018

Как получить представление из viewpresenter.

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

Спасибо.

1 Ответ

0 голосов
/ 05 июня 2018

Я не уверен, что вы хотите сделать, но из вашего кода вы хотите выполнить навигацию.В таком случае вы должны использовать Навигационная служба (требуется Mvx> = 5, в противном случае используйте ShowViewModel из вашего ViewModel/MvxNavigatingObject) и используйте его следующим образом:

var navigationService = Mvx.Resolve<IMvxNavigationService>();
await navigationService.Navigate<MyViewModel>();

Если выЧтобы получить пользовательскую навигацию, просто позвоните

await navigationService.ChangePresentation(new MyCustomPresentationHint());

и в своем пользовательском переопределении докладчика ChangePresentation(MvxPresentationHint hint) добавьте свою собственную логику представления.

Presenter не для разрешения и использования напрямую, а через службу навигации.

Здесь - это исходный код Android Presenter, откуда видно, что вы не можете получить текущий виднепосредственно.Если вы хотите знать, какой из ваших текущих действий вы можете использовать

var currentActivity = Mvx.Resolve<IMvxAndroidCurrentTopActivity>().Activity;

HIH

...