C# Xamarin形成慢导航

C# Xamarin形成慢导航,c#,xamarin.forms,C#,Xamarin.forms,我有一个搜索页面,其中有一个按钮可以导航到另一个页面。当我点击这个按钮时,导航大约需要4秒钟 SearchPage命令: Device.BeginInvokeOnMainThread(async () => { await (Application.Current.MainPage as NavigationPage).PushAsync(new OtherPage()); }); 其他页面代码隐藏: [XamlCompilation(XamlCompilationOptions

我有一个搜索页面,其中有一个按钮可以导航到另一个页面。当我点击这个按钮时,导航大约需要4秒钟

SearchPage命令:

Device.BeginInvokeOnMainThread(async () =>
{
    await (Application.Current.MainPage as NavigationPage).PushAsync(new OtherPage());
});
其他页面代码隐藏:

[XamlCompilation(XamlCompilationOptions.Compile)]
    public partial class OtherPage : ContentPage
    {
        SearchStateViewModel Model;
        public SearchEstatePage()
        {
            InitializeComponent();

            Model = new SearchStateViewModel();

            Layout.BindingContext = Model;
        }

         protected override void OnAppearing()
        {
            base.OnAppearing();

            Model.GetCities();
        }
    }

问题出在哪里?

作为@MichaelRandall建议,我检查了OtherPage的XAML,发现XAML中的Syncfusion组件减慢了导航速度


但是什么是替代品呢?

那么你已经注释掉了
GetCities
并测试了它了吗?为什么你要使用
BeginInvokenMainThread
?@MichaelRandall我第一次注释掉
GetCities
并删除
BeginInvokenMainThread
,这需要3秒钟,当我按下后退按钮并再次按下时导航按钮可以快速导航。只有第一次是slowMy Gurt feeling说可能还会有更多的事情发生你在SearchStateViewModel的构造函数中有任何慢代码吗?@MichaelRandall我已经注释掉了SearchStateViewModel构造函数中的所有代码,但是第一次导航大约需要3秒钟。有没有办法导航到其他页面并在完全显示运行某些代码之后?@MichaelRandall让我们在聊天中继续讨论。“但替换内容是什么?”-Syncfusion是一个商业组件。这意味着支持。联系他们。帮助客户是他们的工作。可能是版本问题、修补过的问题或他们为您提供了代码建议。你为什么问这个问题?这表明对商业组件的支持是如何工作的缺乏了解。请不要在回答框中提问。堆栈溢出不是一个论坛。访问和,了解堆栈溢出时的答案是如何工作的。