在传递数据时导航到另一个 XAML 页面的文档化方法似乎是将数据序列化为 URL 参数。这对于简单的参数非常有用,例如单个数据库键:
NavigationService.Navigate(new Uri("/ViewContact.xaml?contactid=" + cid, UriKind.Relative));
但是,如果您想传入一个相当复杂的数据结构,例如搜索查询,该怎么办?该查询可能包含关键字、各种过滤器、项目数组等。使用 URL 参数表示此类数据将相当困难。
问题:导航到另一个页面的推荐技术是什么,传入非平凡的参数?
一个想法是首先将数据或查询设置为您导航到的页面的静态属性:
Query q = new Query();
// Set various parameters
ViewContact.SearchQuery = q;
NavigationService.Navigate(new Uri("/ViewContact.xaml?contactid=", UriKind.Relative));
然后,当加载 ViewContact 时,它会检查该静态属性并将数据加载到内存中。
这种方法有什么问题,还是有其他推荐的方法?