Navigate Parameter

Navigate(遷移) で Parameter を渡します。

前田稔の超初心者のプログラム入門

プログラムの説明

  1. Navigate(遷移)のときに、簡単な文字列パラメータを渡します。
    [空白アプリ(ユニバーサル Windows)]からプロジェクトを構築します。
    MainPage.xaml のデザインから Navigate する Button を2個貼り付けます。
  2. メニューの[プロジェクト][新しい項目の追加]から[XAML][空白のページ]で BlankPage1 と BlankPage2 を追加します。
    プロジェクトの作成とツールの貼り付けは C# Store Application を参照して下さい。
  3. BlankPage1.xaml を直接修正して、TextBox と Button を貼り付けます。
    (BlankPage1.xaml のデザイン画面から貼り付けることも出来ます)
    <Page
        x:Class="App1.BlankPage1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="using:App1"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        mc:Ignorable="d"
        Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
        <Grid>
            <TextBox x:Name="textBox" HorizontalAlignment="Left" Margin="100,60,0,0"
                Text="TextBox" VerticalAlignment="Top" Height="40" Width="200"/>
            <Button x:Name="button" Content="Button" HorizontalAlignment="Left"
                Margin="100,140,0,0" VerticalAlignment="Top"/>
        </Grid>
    </Page>
    
  4. 同様に BlankPage2.xaml も修正します。
        <Grid>
            <TextBox x:Name="textBox" HorizontalAlignment="Left" Margin="100,60,0,0"
                Text="TextBox" VerticalAlignment="Top" Height="40" Width="200"/>
            <Button x:Name="button" Content="Button" HorizontalAlignment="Left"
                Margin="100,140,0,0" VerticalAlignment="Top"/>
        </Grid>
    
  5. BlankPage1, BlankPage2 のボタンクリックのイベントを設定して、関数をコーディングします。
    BlankPage1.xaml.cs も BlankPage2.xaml.cs も同じです。
    Button_Click() で MainPage に戻ります。
    "AllGroups" は何らかの意味をもつキーワードのようです。
    OnNavigatedTo() で受け取ったパラメータを TextBox に設定して表示します。
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            this.Frame.Navigate(typeof(MainPage), "AllGroups");
        }
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            textBox.Text = e.Parameter.ToString();
        }
    
  6. MainPage のボタンクリックのイベントを設定して、MainPage.xaml.cs に BlankPage を呼び出す関数をコーディングします。
    それぞれのページを呼び出すときに、パラメータを渡しています。
        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            this.Frame.Navigate(typeof(BlankPage1), "Button Click NO-1");
        }
        private void Button_Click_2(object sender, RoutedEventArgs e)
        {
            this.Frame.Navigate(typeof(BlankPage1), "Button Click NO-2");
        }
    
  7. コンパイル&実行して、パラメータが渡されることを確認して下さい。
    Button-1 をクリックすると "Button Click NO-1" が、Button-2 をクリックすると "Button Click NO-2" が表示されます。
    BlankPage のボタンをクリックすると MainPage に戻ります。

超初心者のプログラム入門(C# Frame Work)