Group, Item を識別

Hub で Group, Item を識別して Navigate します。

前田稔(Maeda Minoru)の超初心者のプログラム入門

プロジェクトの作製

  1. Hub ⇒ Blank をベースに Group, Item を識別して Navigate します。
    HubApp1 のプロジェクトをコピーして、フォルダー名を HubApp2 に変更して下さい。
    変更はフォルダー名だけにして下さい。
    元のプロジェクト名は多くの箇所で使われているので、下手にさわると動かなくなります。
  2. Navigate する BlankPage2, BlankPage3 を追加して下さい。
    BlankPage2 に TextBox を貼り付けて、緑色に設定します。
    ツールから Button を貼り付けて Button_Click のイベントハンドラを設定します。
    BlankPage3 に TextBox を貼り付けて、青色に設定します。
    ツールから Button を貼り付けて Button_Click のイベントハンドラを設定します。
    BlankPage1(赤)は既に作成されています。
  3. Button Click メソッドです。
    BlankPage からは "Group-4" を引数にして SectionPage に戻ります。
    Section1, Section2 にはリンクが無く、Section3 をクリックすると "Group Title: 4" が渡されるからです。
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            this.Frame.Navigate(typeof(SectionPage), "Group-4");
        }
    
  4. SectionPage.xaml.cs の navigationHelper_LoadState() メソッドで Group を取得します。
    dlg.ShowAsync(); は取得した Group を確認するコードです。
    Section3 のクリックで Navigate すると "Group Title: 4" が渡されました。
        string g_str;
        private async void NavigationHelper_LoadState(object sender, LoadStateEventArgs e)
        {
            var group = await SampleDataSource.GetGroupAsync((string)e.NavigationParameter);
            this.DefaultViewModel["Group"] = group;
            this.DefaultViewModel["Items"] = group.Items;
            g_str = group.Title.ToString();
            //Windows.UI.Popups.MessageDialog dlg =
            //    new Windows.UI.Popups.MessageDialog(g_str);
            //dlg.ShowAsync();
        }
    
  5. SectionPage.xaml.cs の ItemView_ItemClick() から Group, Item を識別して BlankPage に Navigate します。
        void ItemView_ItemClick(object sender, ItemClickEventArgs e)
        {
            string str = e.ClickedItem.ToString();
            var itemId = ((SampleDataItem)e.ClickedItem).UniqueId;
            if (g_str == "Group Title: 4")
            {
                if (str == "Item Title: 1")
                    this.Frame.Navigate(typeof(BlankPage1), "AllGroups");
                else if (str == "Item Title: 2")
                    this.Frame.Navigate(typeof(BlankPage2), "AllGroups");
                else if (str == "Item Title: 3")
                    this.Frame.Navigate(typeof(BlankPage3), "AllGroups");
                else
                    this.Frame.Navigate(typeof(ItemPage), itemId);
            }
            else
                this.Frame.Navigate(typeof(ItemPage), itemId);
        }
    
  6. 最初の画面から Section3 をクリックして Navigate(遷移)します。
    (Section1, Section2 はリンクが設定されていません)
    Item Title をクリックして BlankPage に Navigate します。
    BlankPage からは ボタンのクリックで Section3 に戻ります。
    App⇒HubPage⇒Section3⇒BlankPage1⇒Section3⇒BlankPage2⇒Section3⇒BlankPage3
    
  7. 「スタート」ボタンから[すべてのアプリ]を選ぶと今作製したアプリが登録されています。
    残しておく必要がなければ右クリックからアンインストールして下さい。

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