2012-05-03 12 views
7

フレームナビゲーションで2つのテキストブロック値を渡す必要があるMetro Style App for Win8を構築しています。 1つのパラメータでは動作しますが、2つのパラメータでは動作しません。助けてください! 私は以下のようにしてみました: this.Frame.Navigate(typeof(SecondPage)、textblock1.Text + textblock2.Text);Metro Style Appsのフレームナビゲーションに複数のパラメータを渡す方法は?

エラーは表示されませんが、機能しません。

答えて

8

2つのプロパティで新しいクラスを作成し、そのプロパティをtextblock値に設定します。次に、移動するときにこのオブジェクトを渡します。

ペイロードクラスを作成します。

public class Payload 
{ 
public string text1 { get;set;} 
public string text2 { get;set;} 
} 

そして、ペイロードクラスを移入:

Payload payload = new Payload(); 
payload.text1 = textblock1.Text; 
payload.text2 = textblock2.Text; 

次にあなたが移動を呼び出すときに、次のようにペイロードのインスタンスを渡します。

this.Frame.Navigate(typeof(SecondPage),payload); 
+0

データを取得していましたか? – rams

+0

@rams http://social.msdn.microsoft.com/Forums/da/winappswithcsharp/thread/8cb42356-82bc-4d77-9bbc-ae186990cfd5 – 4imble

0
+0

Allan Mullerの答えに4imbleのリンクを確認しましたか?また、元の質問に対する回答と思われる場合は、いつかリンクが消える場合は、関連する説明(およびコード)をコピー/貼り付けてください。 – m4rtin

1

私はこれのような辞書オブジェクトを撮影しました。 ViewDetails.xaml.csページ

Dictionary<string, string> newDictionary = new Dictionary<string, string>(); 
newDictionary.Add("time", itemObj.repTime); 
newDictionary.Add("message", itemObj.repMessage); 
Frame.Navigate(typeof(ViewDetails),newDictionary); 

私はsecondpageの値を取得する方法を、次のように

protected override void OnNavigatedTo(NavigationEventArgs e) 
    { 
     Dictionary<string, string> myDictionary = new Dictionary<string, string>(); 
     myDictionary = e.Parameter as Dictionary<string, string>; 
     timeTB.Text = myDictionary["time"].ToString(); 
     messageTB.Text = myDictionary["message"].ToString(); 
    } 
+0

あなたの例のように、両方のパラメータが同じ型の場合にのみ動作します。しかし、異なる値の型(int、floatなど)では機能しません。 – Juanin

+0

はい、そうです。しかし、OPは質問に2つのテキストパラメータを渡したかった。私はそれに応じて答えた:) –

関連する問題