如何更改DetailPage参数的值,以便它实际打开选定的页面而不只是一个空白页面?

时间:2016-10-05 10:14:50

标签: c# listview xamarin

我正在尝试在我的应用中使此搜索页面正常工作。现在,它可以很好地搜索ListView,但ListView不会链接到应用程序中的其他页面。相反,当点击每个ListView元素时,它只会显示一个空白页面。我认为我在如何构造DetailPage类时犯了一个错误,但我不确定如何解决它。

This is the code for Search.cs.

This is a Xamarin forum post where I have been discussing this problem. Someone has helped me and they have been very helpful so far.

我一直在寻找MSDN中的答案,但我还没弄清楚。如何更改DetailPage参数的值,以便它实际打开选定的页面而不只是一个空白页面?

这是DetailPage类。

class DetailPage : ContentPage
{                
    public DetailPage(pageList page_list)
    {
        this.page_list = page_list;
    }       

    public pageList page_list { private set; get; }

}

这是DetailPage对象detailPage获取其参数itemSelected的位置。它只是打开一个空白页面,这不是我想要的。

        listView.ItemTapped += async (sender, args) =>
         {

             var itemSelected = args.Item as pageList;
             if (itemSelected != null)
             {
                 DetailPage detailPage = new DetailPage(itemSelected);
                 await Navigation.PushAsync(detailPage, true);                                     

             }

         };

1 个答案:

答案 0 :(得分:1)

因为你知道页面的类型,你可以使用Activator.CreateInstance来实例化它

         var itemSelected = args.Item as pageList;
         if (itemSelected != null)
         {
             var page = (ContentPage) System.Activator.CreateInstance(itemSelected.fileName);
             await Navigation.PushAsync(page, true);                                     
         }