Prism Xamarin GetCurrentPage възможно ли е

Възможно ли е да получите каква е текущата страница в навигационния стек, когато използвате Prism за xamarin?

Забелязах, че има

 PageUtilities.GetCurrentPage(mainPage).

Каква е употребата на горното?

Търсех нещо като navigationService.GetCurrentPage()

много благодаря


person developer9969    schedule 19.10.2017    source източник


Отговори (1)


Разглеждане на кода за PageUtilities изглежда, че този метод ще направи това, което искате, т.е. ще върне текущата страница в навигационния стек. Изглежда, че обработва сценария, при който текущата страница е MasterDetailPage, TabbedPage, CarouselPage или NavigationPage, и връща правилната страница. Тествах го малко в собственото си приложение и работи според очакванията.

Можете да предадете Application.Current.MainPage като параметър на метода, така:

var currentPage = PageUtilities.GetCurrentPage(Application.Current.MainPage);
person David Conlisk    schedule 19.10.2017
comment
Бихте ли ми показали малък фрагмент от това как сте използвали метода във вашия изгледмодел? Да предположим, че имате приложение с 3 страници и 3 vms- VM1-VM2-VM3 и т.н. и във vm3 искате да разберете текущата страница, какво правите? - person developer9969; 19.10.2017
comment
@developer9969 вижте редактирания ми отговор, просто извикайте метода, където имате нужда от текущата страница, предавайки Application.Current.MainPage като параметър. - person David Conlisk; 19.10.2017
comment
благодаря за отговора. Опитах, но MainPage винаги е null. Можете ли да извикате това в метода NavigatedTo? - person developer9969; 19.10.2017
comment
Корекцията е нулева само първия път, когато получи правилната страница. Чудя се къде е подходящото място за извикване на това. - person developer9969; 19.10.2017
comment
@developer9969 Ако го извикам в конструктора или в метода OnNavigatedTo за виртуалната машина за главната страница на моето приложение, тогава MainPage е нула (разбираемо) и приложението се срива. Но извикването му във всяка друга виртуална машина работи добре. - person David Conlisk; 19.10.2017
comment
Първо благодаря за отделеното време. Направих тази главна страница. navigatedto navigateasync viewa в navigatedto (viewa) се срива, но втори път Добре, така че основно трябва да изчакам главната страница да се зареди и тогава мога да го направя mmm - person developer9969; 19.10.2017