У меня есть проект Xamarin.Forms, и у меня есть настраиваемый элемент управления, который должен открыть новую страницу при нажатии. К сожалению, ничего не происходит, когда я звоню Navigation.PushAsync(...);
. Я читал бесчисленные вопросы StackOverflow (such as this one) и форумы Xamarin и выполняли несколько поисков Google, но ни одно из решений, похоже, не решило мою проблему.
Xamarin.Forms Navigation.PushAsync не работает
- Мой контроль наследует от
ContentView
, как и все Xamarin.Forms видом сделать. src
- пользовательский класс, который содержит некоторые точки данных, которые используется этим элементом управления иEventDetailsPage
.- Я могу подтвердить, что жест делает сам работает, но звонок
PushAsync()
ничего не делает. - Я попытался манипулировать заявлением так, чтобы использовался
NavigationPage
(так, что он становитсяmyNavigationPage.Navigation.PushAsync(new EventDetailsPage(src));
). - Я также попытался создать конструктор, который принимает
Page
и использует его в таком же состоянии, как указано выше.
конструктор моего элемента управления:
public EventControl() {
InitializeComponent();
GestureRecognizers.Add(new TapGestureRecognizer() {
Command = new Command(() => Navigation.PushAsync(new EventDetailsPage(src)))
});
}
Как правило, задавая новый вопрос на StackOverflow мой последний курорт, когда ничего, что я пытался не решить мою проблему. Любая помощь приветствуется.
Ваша страница на самом деле содержится внутри NavigationPage? И получаете ли вы доступ к свойству навигации управления или свойствам навигации страницы, в которой содержится элемент управления? – Jason
@ Джейсон Да. Моя иерархия идет 'NavigationPage' ->' TabbedPage' -> 'ContentPage' ->' ContentView' (как 'EventControl'). Что касается вашего второго вопроса, я пробовал и то, и другое. –
Как правило, TabbedPage будет вашим корнем, и каждая вкладка будет содержать страницу Nav с ContentPage внутри нее (или просто ContentPage, если на этой конкретной вкладке не требуется Навигация). – Jason