模板10导航服务序列化

时间:2016-05-30 11:08:44

标签: uwp template10

我在我的UWP项目中使用Template10。在导航时传递参数时,我可以在OnNavigated(NavigationEventArgs e)上接收我的对象的序列化文本。

这是因为在调用Navigate方法时,Template10导航服务序列化了该对象。我是否必须每次都将deserailize传递给导航服务。还有其他选择吗?

1 个答案:

答案 0 :(得分:2)

在视图页面中:

您需要自行反序列化

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    string myString = Template10.Services.SerializationService.SerializationService.Json.Deserialize<string>(e.Parameter?.ToString());
}

在视图模型页面中:

为您完成反序列化;只需将parameter对象强制转换为预期的Type。

public override Task OnNavigatedToAsync(object parameter, NavigationMode mode, IDictionary<string, object> state)
{
    string myString = parameter?.ToString();
}

请记住,您可以序列化到导航服务中的数据大小限制(大约8kb?)。

在视图页面中:

 Template10.Common.BootStrapper.Current.NavigationService.Navigate(typeof(PageToNavigateTo), objectToSerialize);

在视图模型页面中:

[Template10.MvvM.ViewModelBase.]NavigationService.Navigate(typeof(PageToNavigateTo), objectToSerialize);

对于大块数据,您可以寻求替代解决方案,例如会话缓存或类似的东西。