Xamarin

Xamarin.Forms ページ遷移時のデータ受け渡しについて

More than 3 years have passed since last update.

Xamarin.Forms では、NavigationPage(new Firstpage()) でページを呼び出すと、Navigation.PushAsync(new SecondPage()) でナビゲーションすることができます。PrepareForSegueStartActivity は当たり前ですが使いません。

データの受け渡しについて正しい方法かは分かりませんが、引数でデータを渡せましたので、メモとして残します。簡単なアプリであれば単純に渡す方法として大丈夫そうです。


FirstPage.cs

var editorName = new Entry {

Keyboard = Keyboard.Text,
Placeholder = "Input your name.",
};
var editorAge = new Entry {
Keyboard = Keyboard.Numeric,
Placeholder = "Input your age.",
};
var button = new Button {
Text = "Push me",
HorizontalOptions = LayoutOptions.Fill,
};
button.Clicked += (sender, e) =>
{
string[] yourData = { editorName.Text, editorAge.Text };
Navigation.PushAsync(new SecondPage(yourData));
};

Android の EditText、iOS の Text Field に相当する Entry の Text を引数として次のページに渡してみました。


SecondPage.cs

public SecondPage(string[] str)

{
this.Content = new Label {
Text = "Your name is " + str[0] + " Your age is " + str[1],
VerticalOptions = LayoutOptions.Center,
HorizontalOptions = LayoutOptions.Center
};
}

一応データの受け渡しが出来てます。

スクリーンショット 2014-06-26 13.33.04.png

スクリーンショット 2014-06-26 13.33.25.png

いいのかな…

xamarin-forms/XamarinForms_Navigation at master · ytabuchi/xamarin-forms

にアップしておきましたので、こうじゃね?ってのが分かる方は是非教えて下さい><

2014/6/27 追記

増田さん にコメントいただきました。しっかりやる場合は当然 MVVM でやった方が良いとのこと。

以上です。