我有一个Xamarin.Forms项目,我有一个自定义控件,在点击该控件时应打开一个新页面。不幸的是,当我调用Navigation.PushAsync(...);时,什么也没有发生。我已经阅读了无数StackOverflow问题(such as this one)和Xamarin论坛线程,并进行了几次Google搜索,但是没有一种解决方案似乎可以解决我的问题。

  • 我的控件继承自ContentView,因为所有Xamarin.Forms View
    做。
  • 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上问一个新问题是我的最后选择。任何帮助表示赞赏。

    最佳答案

    像这样更改您的 App.cs

      public App()
        {
            InitializeComponent();
    
            MainPage = new NavigationPage(new MainPage());//Very important add this..
            //MainPage = new MainPage(); //not like this
        }
    

    关于c# - Xamarin.Forms Navigation.PushAsync不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35906952/

    10-09 16:03