【发布时间】:2013-05-24 12:31:29
【问题描述】:
我有一个包含 2 页 calendar.xaml(起始页)和 historystatistics.xaml 的应用程序。当我导航到历史统计并返回日历然后尝试通过下拉手势终止应用程序时引发错误。上述错误发生在 App.xaml 的 OnSuspending 中的 SaveAsync 函数中。
private async void OnSuspending(object sender, SuspendingEventArgs e)
{
CycleManager cycMan = CycleManager.Instance;
var deferral = e.SuspendingOperation.GetDeferral();
//TODO: Save application state and stop any background activity
if (cycMan.Reset != true)
{
await Appname.Common.SuspensionManager.SaveAsync(); // **ERROR**
}
deferral.Complete();
}
它说
“System.Runtime.InteropServices.COMException”类型的异常 发生在 mscorlib.dll 中,但未在用户代码中处理。
GetNavigationState 不支持参数类型的序列化 已传递给 Frame.Navigate。
我哪里做错了?我从 xaml 的 historystatistics 页面做了一个简单的导航,就像这样
<Button x:Name="backButton" Click="GoBack" IsEnabled="{Binding Frame.CanGoBack, ElementName=pageRoot}" Style="{StaticResource BackButtonStyle}"/>
【问题讨论】:
-
您是否将参数传递给导航?请注意,您只能传递可序列化的对象。
-
不。不传递任何参数。我在某个论坛上读到,如果我尝试传递一个复杂的参数,就会发生这种情况。我什至没有写回退函数,因为它是默认的基本页面,因此它包含后退按钮。
-
所以尝试覆盖 goback 函数并尝试传递一个空字符串。
-
@inxs base.GoBack(sender, e); ??
-
只是一个常规覆盖。
public void overwrite GoBack(sender, Eventargs)
标签: c# exception windows-8 navigation