自己紹介アプリに入力された名前をSecond Page(画面遷移)を表示さす方法をまとめています。
ファイル --> 新規作成 --> プロジェクト(P)... --> Cross-Platform --> Xamarin-Forms で作成
Top画面のHomePageの作成
プロジェクト XFContenPageを右クリック --> 追加(D) --> 新しい項目(W)...をクリック
Cross-Platform --> code --> Forms Xaml Page を選択 名前:HomePage 追加
HomePage.xamlを書き換える。
HomePage.xaml
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="XFPart2LBE04.HomePage"
BackgroundColor="Silver">
<!-- Padding 内側の余白 -->
<StackLayout BackgroundColor="Silver"
Padding="60"
VerticalOptions="Center">
<!-- 名前入力欄 -->
<!-- Grid 表のようにレイアウトを配置できるレイアウト -->
<Grid Padding="0,0,0,50">
<Entry x:Name="MainEntry"
BackgroundColor="Gray" />
</Grid>
<!-- 自己紹介ボタン -->
<Button Clicked="Button_OnClicked"
Text="自己紹介する"
BackgroundColor="Green"
TextColor="White"/>
<!-- 自己紹介表示ラベル -->
<Label x:Name="MainLabel"
TextColor="White"
FontSize="40"/>
<!-- ナビゲーションボタン -->
<Button Text="Navigate to Second Page"
Clicked="NavigateButton_OnClicked"
BackgroundColor="Blue"></Button>
</StackLayout>
</ContentPage>
HomePage.xaml.csを書き換える。
HomePage.xaml.csにナビゲートボタンをクリックした時に画面遷移先に名前データを送る。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
namespace XFPart2LBE04
{
public partial class HomePage : ContentPage
{
public HomePage()
{
InitializeComponent();
}
// 自己紹介ボタン
private void Button_OnClicked(object sender, EventArgs
e)
{
// 名前入力
string text = MainEntry.Text;
// 自己紹介テキスト
MainLabel.Text = "私は" + text +
"です。";
}
// ナビゲートボタン
private async void NavigateButton_OnClicked(Object sender,
EventArgs e)
{
//
ページ1画面遷移先にMainEntry.Text(入力名前)を送る
await Navigation.PushAsync(new
Page1(MainEntry.Text));
}
}
}
画面遷移先のPage1.xamlの作成
プロジェクト XFContenPageを右クリック --> 追加(D) --> 新しい項目(W)...をクリック
Cross-Platform --> Forms Xaml Page を選択し名前:Page1.csを追加
Page1.xaml Page1の画面に表示する名前ラベルを作成
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="XFPart2LBE04.Page1"
Title="Second Page">
<!-- 遷移先 名前ラベル -->
<Label x:Name="MainLabel"
TextColor="White"
FontSize="40"/>
</ContentPage>
Page1.xaml.cs 遷移元のデータ受け入れるparameterの引数を付ける
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
namespace XFPart2LBE04
{
public partial class Page1 : ContentPage
{
// 遷移元 MainEntry.Text = parameter に名前データを受け渡す
public Page1(string parameter)
{
InitializeComponent();
// 遷移元 MainEntry.Text 名前データを表示
MainLabel.Text = parameter;
}
}
}
App.cs MainPageの書き換え
App.cs
this.MainPage = new HomePage(); 1行のみ
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Xamarin.Forms;
namespace XFPart2LBE04
{
public class App : Application
{
public App()
{
// The root page of your application
MainPage = new NavigationPage(new HomePage());
}
protected override void OnStart()
{
// Handle when your app starts
}
protected override void OnSleep()
{
// Handle when your app sleeps
}
protected override void OnResume()
{
// Handle when your app resumes
}
}
}
ビルド
Android,Windows Phone 名前を入力し「Navigate to Second Page」ボタンをクリック
「Second Page」に名前が表示されます。
▫️参考ページ
Xamarin.Forms を XAML を使って書くために
Xamarin Forms with Visual Studio Part 5 [Passing Parameter to Page]
コメントをお書きください