我不斷收到以下錯誤,但我不明白爲什麼。它發生在暫停時,但是隻有在兩次訪問頁面之後。也就是說,應用程序加載,然後進入頁面,然後使用VS2013暫停應用程序,並且它工作得很好。但是,如果我改爲打開該應用,請轉到該頁面,然後返回並再次轉到該頁面,然後暫停...我收到錯誤消息。我沒有將任何複雜的類型傳遞給frame.Navigate,甚至沒有任何原始類型。我已經更改我的應用程序,以確保它甚至不再使用導航參數,以努力解決此問題。同時,由於我通過Prism使用MVVM,因此我從不調用frame.Navigate直接反正。我相信SessionStateService會調用它,但我無法通過那裏調試來弄清楚發生了什麼。WinRT Prism.StoreApps:GetNavigationState不支持傳遞給Frame的參數類型的序列化。導航
錯誤: 「GetNavigationState不支持傳遞給Frame.Navigate的參數類型的序列化。」
我正在做的唯一奇怪的事情是,我在我的頁面上嵌入了一個UserControl,並且在我的頁面viewmodel中有它的viewmodel。但是,嵌入式控件的視圖模型不是Prism.StoreApps.Viewmodel,它只是實現INotifyPropertyChanged。這是因爲我在2頁中使用了這個用戶控件,而不是它自己的頁面。這是造成這個問題嗎?用戶控件的視圖模型是每個頁面的viewmodel類的屬性,並且該屬性被標記爲[RestorableState],該用戶控件的視圖模型中的屬性也被標記爲[RestorableState]。如果您認爲這可能導致它,請讓我知道爲棱鏡嵌入用戶控件MVVM樣式的正確方法。
請注意,我還爲OnRegisterKnownTypesForSerialization設置了覆蓋,併爲我的用戶控件的viewmodel調用了SessionStateService.RegisterKnownType。