如何使用Page
方法将复杂对象传递给目标NavigationService.Navigate
?
答案 0 :(得分:2)
不幸的是你做不到。这有点意义,因为它的想法是为页面/视图提供深层链接支持,但是你无法做到这一点肯定很烦人。你有的选择是:
对于小对象,你可以序列化它们并将它们传递给查询字符串中的下一个视图,虽然我建议不要使用这种方法(不同的浏览器有不同数量的最大字符在他们支持的URL中,如果用户为该页面添加书签并返回该对象,该对象也可能已过期。
将对象存储在全局缓存中,导航到的视图可以从中访问它。不好,但它会起作用。
Navigation Framework源代码是Silverlight Toolkit的一部分。您可以修改它以支持复杂对象,但我强烈建议您不要这样做。
使用MVVM模式,一个视图模型用于管理多个视图,因此该对象可供所有这些视图使用。
希望这会有所帮助......
克里斯
P.S。我在我的书Pro Business Applications with Silverlight 4中对此进行了讨论,尽管只是在深度上面,因为没有一个特别好的解决方案:)。