Xamarin从列表,导航到详细信息,然后从详细信息返回列表

时间:2020-05-11 01:48:30

标签: xamarin xamarin.forms xamarin.android xamarin.ios

我有新部门表格页面 我创建部门,创建了10名员工 在Click Employee上,详细信息会通过以下脚本触发

我得到Android全球不支持PushAsyn,请使用Nagigation页面 但是,如果我一直回到部门页面并进入列表并单击详细信息,则此方法有效 创建时

async void OnItemSelected(object sender, SelectedItemChangedEventArgs args)
    {
        var item = args.SelectedItem as Employee;
        if (item == null)
            return;
         //None below works
         await (App.Current.MainPage).Navigation.PushAsync(new EmployeeDetail(item));
        //await Navigation.PushAsync(new EmployeeDetail(item));
        //Application.Current.MainPage = new NavigationPage(new EmployeeDetail(item));

    }

1 个答案:

答案 0 :(得分:0)

根据您的描述,如果要在ContentPages之间使用导航。在COntentPages之间进行导航的方式有两种,一种是使用Navigation.PushAsync(),另一种是使用Navigation.PushModalAsync()。

如果使用Navigation.PushAsync(),请在App.xaml.cs构造函数中为MainPage属性设置导航页实例。

 public App()
    {
        InitializeComponent();         
        MainPage = new NavigationPage(new Page20()); 

    }

然后,您可以使用以下代码进行导航。

private void ListView_ItemSelected(object sender, SelectedItemChangedEventArgs e)
    {
        Employee item = e.SelectedItem as Employee;
        if(item!=null)
        {
            Navigation.PushAsync(new Page21(item));

        }
    }

如果未在App.xaml.cs中为MainPage属性创建导航实例,则

public App()
{
    InitializeComponent();         
    MainPage = new Page20(); 

}

您需要

 private void ListView_ItemSelected(object sender, SelectedItemChangedEventArgs e)
    {
        Employee item = e.SelectedItem as Employee;
        if(item!=null)
        {          
            Navigation.PushModalAsync(new Page21(item));
        }
    }

有关Xamarin.Forms模态页面的更多详细信息,请查看:

https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/navigation/modal