4

Windows Phone 8 アプリに NavigationContext.QueryString を使用しています。たとえば、ナビゲーション文字列に ItemId のような URI 識別子を設定し、OnNavigatedTo で Id を解析し、linq を介してアイテムを読み取ります。

    protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        try
        {
            int itemId = int.Parse(NavigationContext.QueryString["itemId"]);

            _item = App.MainViewModel.GetItem(itemId);

            DataContext = _item;
        }
        catch (KeyNotFoundException ex)
        {
            Debug.WriteLine(ex.Message);
            throw;
        }
    }

興味深い代替手段を見つけたので、あなたの意見を聞きたいです。

// in the calling page
PhoneApplicationService.Current.State["Item"] = App.MainViewModel.GetItem(123);

// in the destination page
Item item = PhoneApplicationService.Current.State["Item"] as Item;

これは本当に推奨される方法ですか?

4

1 に答える 1

0

MSDNから:

PhoneApplicationService クラスは、アプリケーションの有効期間のさまざまな側面へのアクセスを提供します。これには、アプリケーションのアイドル状態の管理と、アプリケーションがアクティブまたは非アクティブになったときの状態の管理が含まれます。そのように使用できますが、データはシリアライズ可能でなければなりません。

このリンクにはデータを共有する他の方法がありますが、状態が推奨される方法ではないと思います。それは墓石の目的のためです。

于 2013-01-10T20:25:42.087 に答える