2016-05-23 12 views
1

Intense Templates(SplitViewサンプル)を使用してUWPプロジェクトを開発した後、Template10(Hamburger)に切り替えました。そして、私はパラメータにUWP Template10 Frame.Navigate with parameter causesエラー

param is string with value something like this - (d5d05a3b-546a-4ca6-a345-74e333fa00fb) Frame.Navigate(typeof(EditPage),param);

エラーを渡すしようとするとエラーがこのようなものがあるようです。 ErrorPicture とは、その後、私の編集ページが右のparamは、それが戻ってユーザーに送信されます(Frame.GoBack())を取得カント場合

An exception of type 'System.Runtime.InteropServices.COMException' occurred in App6.exe but was not handled in user code 
Additional information: Error HRESULT E_FAIL has been returned from a call to a COM component. 
+2

こんにちは。コードの記述をデバッグするのは本当に難しいです:) *あなたの質問を編集して*関連するコードスニペットを追加して、あなたが得たものを見ることができるようにしてから、そのコードをデバッグする手助けができますか? (書式設定がひどいので、コメントにコードを入れないでください):) –

答えて

1

あなたの問題の根本的な原因のように、今私は取得していますエラーが、私は(例外文字列に基づいて)推測した場合、あなたのページ複合型THAに渡しているということですtは直列化できません。 Template 10がパラメータをシリアル化する理由は、アプリが中断された後にナビゲーション状態を正しく復元できるためです。私はあなたが非直列化可能なオブジェクトを渡さなければならない場合、これが不便であることを認識しています。そうすれば、BootStrapper.SessionState(Dictionary)を見ればどんな種類のオブジェクトも保持でき、SessionState +オブジェクトを取得するためのキー。

これはテンプレート10に固有のパターンではありません。私がこれに追加する唯一のものは、オブジェクトが辞書にないと想定し、そのオブジェクトを処理する防御コードを含めることです状況も。理由は、アプリが停止された場合にこのような状況が発生する可能性があるためです。

これは意味があると思います。そして、気分を悪くしないでください。あなたは確かにこの質問をする最初の人ではありません。

var key = nameof(MyObject); 
SessionState.Add(key, MyObject); 
NavigationService.Navigate(typeof(Views.MainPage), key); 
関連する問題