如何使用Navigation框架传递复杂类型

时间:2010-10-08 15:36:41

标签: silverlight-4.0 mvvm-light

如何使用Page方法将复杂对象传递给目标NavigationService.Navigate

1 个答案:

答案 0 :(得分:2)

不幸的是你做不到。这有点意义,因为它的想法是为页面/视图提供深层链接支持,但是你无法做到这一点肯定很烦人。你有的选择是:

  • 对于小对象,你可以序列化它们并将它们传递给查询字符串中的下一个视图,虽然我建议不要使用这种方法(不同的浏览器有不同数量的最大字符在他们支持的URL中,如果用户为该页面添加书签并返回该对象,该对象也可能已过期。

  • 将对象存储在全局缓存中,导航到的视图可以从中访问它。不好,但它会起作用。

  • Navigation Framework源代码是Silverlight Toolkit的一部分。您可以修改它以支持复杂对象,但我强烈建议您不要这样做。

  • 使用MVVM模式,一个视图模型用于管理多个视图,因此该对象可供所有这些视图使用。

希望这会有所帮助......

克里斯

P.S。我在我的书Pro Business Applications with Silverlight 4中对此进行了讨论,尽管只是在深度上面,因为没有一个特别好的解决方案:)。