1

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

这是因为在调用 Navigate 方法时,Template10 导航服务会序列化对象。每次将参数传递给导航服务时,我是否必须脱轨。有没有其他选择?

4

1 回答 1

2

在视图页面中:

你需要反序列化自己

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

在视图模型页面中:

反序列化已为您完成;只需将parameter对象转换为预期的类型。

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);

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

于 2016-06-11T15:23:04.783 回答