簡體   English   中英

“參數不正確。”在WP7中導航到新頁面時

[英]“The parameter is incorrect.” When navigating to new pages in WP7

通常在導航到我的WP7應用程序中的頁面時,我得到以下例外:

我無法准確確定它可能是什么。 我已經實現了很多用戶控件,但是我將頁面傳遞給每個控件,因此他們可以使用相同的Navigate調用。 我也嘗試過

(App.Current.RootVisual as PhoneApplicationFrame).Navigate

但這也經常給出相同的結果。

如果處理了異常,頁面將在視覺上切換到下一頁,但頁面仍保留在上一頁上。

例如,如果我有頁面布局A - > B - > C,並且我將此異常導航到C,則會出現C,但我仍然會在B.

如果按下后退,我將返回A.

如果我以某種方式與D進行交互,我將以空白屏幕結束。

有沒有人經歷過這個? 我還沒有看到與此相關的WP7導航相關問題。

參數不正確。

堆棧跟蹤:

  at MS.Internal.XcpImports.CheckHResult(UInt32 hr)
   at MS.Internal.XcpImports.SetValue(INativeCoreTypeWrapper obj, DependencyProperty property, DependencyObject doh)
   at MS.Internal.XcpImports.SetValue(INativeCoreTypeWrapper doh, DependencyProperty property, Object obj)
   at System.Windows.DependencyObject.SetObjectValueToCore(DependencyProperty dp, Object value)
   at System.Windows.DependencyObject.SetValueInternal(DependencyProperty dp, Object value, Boolean allowReadOnlySet, Boolean isSetByStyle, Boolean isSetByBuiltInStyle, PropertyInvalidationReason reason)
   at System.Windows.DependencyObject.SetValueInternal(DependencyProperty dp, Object value)
   at System.Windows.DependencyObject.SetValue(DependencyProperty dp, Object value)
   at System.Windows.Controls.ContentControl.set_Content(Object value)
   at System.Windows.Navigation.NavigationService.CompleteNavigation(DependencyObject content)
   at System.Windows.Navigation.NavigationService.<>c__DisplayClass5.<NavigateCore_ContinueNavigation>b__4()
   at System.Reflection.RuntimeMethodInfo.InternalInvoke(RuntimeMethodInfo rtmi, Object obj, BindingFlags invokeAttr, Binder binder, Object parameters, CultureInfo culture, Boolean isBinderDefault, Assembly caller, Boolean verifyAccess, StackCrawlMark& stackMark)
   at System.Reflection.RuntimeMethodInfo.InternalInvoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, StackCrawlMark& stackMark)
   at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)
   at System.Delegate.DynamicInvokeOne(Object[] args)
   at System.MulticastDelegate.DynamicInvokeImpl(Object[] args)
   at System.Delegate.DynamicInvoke(Object[] args)
   at System.Windows.Threading.DispatcherOperation.Invoke()
   at System.Windows.Threading.Dispatcher.Dispatch(DispatcherPriority priority)
   at System.Windows.Threading.Dispatcher.OnInvoke(Object context)
   at System.Windows.Hosting.CallbackCookie.Invoke(Object[] args)
   at System.Windows.Hosting.DelegateWrapper.InternalInvoke(Object[] args)
   at System.Windows.RuntimeHost.ManagedHost.InvokeDelegate(IntPtr pHandle, Int32 nParamCount, ScriptParam[] pParams, ScriptParam& pResult)

編輯:

問題是我的代碼試圖向前導航,同時也試圖向后導航。 這導致了一個問題,因為在某些情況下,當在未來頁面的OnNavigatedTo中時,我的代碼會嘗試返回,只是嘗試再次前進。 這引起了一個大問題。

我已經看到在嘗試將控件附加到基於現有控件的可視樹時發生錯誤,但偽造給它一個唯一的名稱。 可能值得檢查您的代碼,看看是否會發生這種情況。

除此之外,它似乎是一個關於控制實例化的所有例外。 它可能有助於在頁面構建過程中查找可能出現的其他問題。

如果異常可能更具體,那將是很好的。

查看了NavigationService的代碼后,似乎將目標頁面分配給PhoneApplicationFrameContent屬性時出現問題。 也許是因為你傳遞Page實例的方式沒有被正確地從框架中刪除或者其他類似的問題。

我的建議是停止傳遞Page實例,特別是因為你只需要訪問NavigationService 您可以:只需傳遞NavigationService ,或使用PhoneApplicationFrame.Navigate

為什么不復制項目並嘗試通過刪除所有不能重現問題的東西來縮小問題范圍。 這可能是一個非常簡單的問題,但你必須把這個問題搞得一團糟。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM