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;
    }

最初の 2 つの ListItems のいずれかが選択されると、受信 ContentPage がインスタンス化されますが、ページの BindingContext は null です。送信ページから URL を取得するために、他の多くの方法を試しました。

他の例からわかることから、私がしていることは正しいですが、結果はそうではありません。

URL を Web ビュー ページに渡すために他に何かする必要がありますか?

4

1 に答える 1