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 ビュー ページに渡すために他に何かする必要がありますか?