0

我设置了 MasterDetail UI。左边是一个 ListView。ListView 是这样设置的

public class MasterPageList
{
    public string Text { get; set; }

    public string Url { get; set; }

    public override string ToString()
    {
        return Text;
    }
}

        var listOptions = new List<MasterPageList>
        {
            new MasterPageList{ Text = "Packt website", Url = "http://www.packt.com" },
            new MasterPageList{ Text = "Farmtrack Live", Url = "http://www.farmapps.co.uk" },
            new MasterPageList{ Text = "Henry Crunn", Url = "" }
        };

        // create the ListView - this is explained later in the book more fully in the What A Bind chapter

        var listView = new ListView
        {
            ItemsSource = listOptions.ToArray()
        };

        // create the master page
        Master = new ContentPage
        {
            Title = "Webviewer",
            Content = new StackLayout
            {
                Children =
                {
                    header, listView
                }
            }
        };

ItemSelected 事件触发收件人页面

    void LaunchPage(object s, SelectedItemChangedEventArgs e)
    {
        var binding = e.SelectedItem as MasterPageList;

        var displayPage = new Page();

        if (string.IsNullOrEmpty(binding.Url))
        {
            displayPage = (Page)Activator.CreateInstance(typeof(WebviewGenerated));
        }
        else
        {
            displayPage.BindingContext = e.SelectedItem;
            displayPage = (Page)Activator.CreateInstance(typeof(Webview));
        }

        Detail = new NavigationPage(displayPage);
        IsPresented = false;
    }

选择前两个 ListItem 中的任何一个时,都会实例化接收 ContentPage,但页面的 BindingContext 为 null。我尝试了许多其他方法来从发送页面获取 URL。

从我从其他示例中可以看出,我所做的是正确的,但结果表明并非如此。

我还需要做些什么才能将 URL 传递到 Web 视图页面吗?

4

1 回答 1

0

尝试以下操作:

        var params = new Params {
            url = "https://www.google.com",
            querystring = ""
        };

        var secondPage = new SecondPage ();
        secondPage.BindingContext = params;
        await Navigation.PushAsync (secondPage);
于 2017-08-07T21:12:13.797 回答