C# 在Xamarin窗体中使用pushmodal异步时,应用程序崩溃

C# 在Xamarin窗体中使用pushmodal异步时,应用程序崩溃,c#,xamarin.forms,C#,Xamarin.forms,我使用的是Xamarin表单,有一个选项可以在顶部栏中提供搜索。因此,我们采用了toolbaritems数组并逐个添加项 但当双击搜索图标时,应用程序正在崩溃。指示下线的碰撞 ToolbarItems.Add (new ToolbarItem ("Info", Constants.SEARCH_ICON, () => Navigation.PushModalAsync (searchPage))); 错误信息显示: System.InvalidOperationE

我使用的是Xamarin表单,有一个选项可以在顶部栏中提供搜索。因此,我们采用了toolbaritems数组并逐个添加项

但当双击搜索图标时,应用程序正在崩溃。指示下线的碰撞

            ToolbarItems.Add (new ToolbarItem ("Info", Constants.SEARCH_ICON, () => Navigation.PushModalAsync (searchPage)));
错误信息显示:

System.InvalidOperationException:页面不能已有父级


---你能帮我一下吗?

双击会导致
PushModalAsync
发生两次,非常快,从而引发问题

相反,您可能希望这样做,以防止双重导航,并正确使用
任务
返回方法
PushModalAsync
上的
wait

// Define a new variable
bool canNavigate = true;

ToolbarItems.Add (new ToolbarItem ("Info", Constants.SEARCH_ICON, async () => {

    if(canNavigate)
    {
        canNavigate = false;
        await Navigation.PushModalAsync (searchPage)
        canNavigate = true;
    }

}));

谢谢你的回复。这对我有用。我把它标记为答案——你好,Koushik Ganguly