web-dev-qa-db-ja.com

Windows Phone 8.1-ページナビゲーション

から来る Windows Phone 8Windows Phone 8.1コード。基本的に、ページナビゲーションを行う方法は、Windows Phone 8。それを行うには、次を追加する必要があります。

NavigationService.Navigate(new Uri("/SecondPage.xaml", UriKind.Relative));

しかし、そのコードはWindows Phone 8.1

誰かがこれを手伝ってくれますか?可能であれば、すべての新しいWindows Phone 8.1メソッド。

37
Ahmed.C

Windows Phone 8.1では、ページナビゲーションメソッドは次のようになります。

Frame.Navigate(typeof(SecondPage), param);

これは、「SecondPage」にナビゲートし、「param」(オブジェクトに基づくクラス)を渡すことを意味します。

パラメータを渡す必要がない場合は、これを使用できます:

Frame.Navigate(typeof(SecondPage));

ドキュメントを見つけることができます このMSDNリンク用

63
Chris Shao

戻りたい場合は、次を使用できます。

if(this.Frame.CanGoBack)
{
this.Frame.GoBack();
}

戻るボタンのクリックで戻りたい場合は、hardwarebuttonイベントをオーバーライドする必要があります。

HardwareButtons.BackPressed += HardwareButtons_BackPressed;

void HardwareButtons_BackPressed(object sender, BackPressedEventArgs e)
        {
            Frame rootFrame = Window.Current.Content as Frame;
            if(rootFrame != null && rootFrame.CanGoBack)
            {
                rootFrame.GoBack();
                e.Handled = true;
            }

        }

E.Handledをtrueに設定してください。

23
Harsha Bhat
// Navigation Without parameters

this.Frame.Navigate(typeof(SecondPage));



// Navigation with parameters

this.Frame.Navigate(typeof(SecondPage),MyParameters);
1

複数のパラメーターを送信するには:答えるのはかなり遅いですが、誰かを助けるかもしれません。カスタムクラスを作成し、パラメーターを設定して、そのオブジェクトをパラメーターとしてターゲットページに送信できます。

例えば。カスタムクラス:

public class CustomDataClass
{
public string name;
public string email;
} 

CustomDataClass myData = new CustomDataClass();
myData.name = "abc";
myData.email = "[email protected]";

Frame.Navigate(typeof(SecondPage), myData);

そして、ターゲットページで、次のようなOnNavigatedTo関数で取得できます。

protected override void OnNavigatedTo(NavigationEventArgs e)
{
CustomDataClass myData2 = e.Parameter as CustomDataClass;
string name = myData2.name;
string email = myData2.email;
}

それが役に立てば幸い。

0
user5434084