2011-10-21 20 views
2

私は最初のWindows Phone 7アプリケーションを開発中です。私はSilverlight、C#、そして.NETのシーン全体を新鮮にしていますが、私はまともな進歩を遂げていると思っています。Windows Phone 7でShellTileのURI引数を解析する

さまざまなコード例からわかるように、私はShellTileを使用してタイルを設定できます。私は、URI(この例のように)とのparamsを通過することができます知っている:

ShellTile.Create(new Uri("/MainPage.xaml?DefaultTitle=FromSecondaryTile", UriKind.Relative), tile); 

誰もが、私はタイルから渡された引数を処理する方法の方向に私を指す(または説明)することはできますか?だから、タイルが開いているとき、私はアプリケーションの特定の部分を開きたいと思います。レコードの

、私は、それぞれがそのように扱うようにするために、私は別のページを作成することができます認識してんだけど、私は汚い速くなっていること:)

感謝を見ることができます! Mike

答えて

2

私が働くことを発見した方法xhamlページ間で値を渡すのと同じ手段です。クエリ文字列に渡すだけです。 NavigationContext.QueryString ["XXXXX"]。ToString();

ここで、XXXXXはキー/名前のペアの名前です。

1

URLを別のページ(OtherPage.xamlなど)に設定するか、指定したURIを使用してOnNavigatedToオーバーライドでページ/ビューを変更することができます。

protected override void OnNavigatedTo(NavigationEventArgs e) 
{ 
    ... 
} 

ここでNavigationEventArgsは、提供されたナビゲーション引数を通常の辞書として提供します。それらから、あなたは何をすべきかを決めることができます。

また、あなたは単純な拡張との生活を楽にすることができます(私は個人的に識別のためにそれらを使用することを好むので、ここでは、整数キーの過負荷を専門)

namespace System.Windows.Navigation 
{ 
    public static class NavigationExtensions 
    { 
     public static int? TryGetKey(this NavigationContext source, string key) 
     { 
      if (source.QueryString.ContainsKey(key)) 
      { 
       string value = source.QueryString[key]; 

       int result = 0; 
       if (int.TryParse(value, out result)) 
       { 
        return result; 
       } 
      } 

      return null; 
     } 

     public static string TryGetStringKey(this NavigationContext source, string key) 
     { 
      if (source.QueryString.ContainsKey(key)) 
      { 
       return source.QueryString[key]; 
      } 

      return null; 
     } 
    } 
} 
+0

クラウスはたくさんのことを理解していますが、NavigationEventArgsの情報を引き出すのは難しいですが、テキスト形式で何が通過するのか知りたいのであれば、それは実際にテキストへのargsを解析する例はありますか? –

+0

私の特定の目的のためにうまくいくとわかった方法は、xamlページ間で値を渡すのと同じ手段です。単にクエリ文字列に値を渡すだけです。 NavigationContext.QueryString ["XXXXX"]。ToString (); ここで、XXXXXはキー/名前のペアの名前です。 –

+0

これはお勧めの方法です。 –

関連する問題