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

发布于 2024-09-26 20:36:21 字数 83 浏览 2 评论 0原文

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

How does one pass a complex object to the target Page using the NavigationService.Navigate method?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

思念满溢 2024-10-03 20:36:21

不幸的是你不能这样做。这有点道理,因为这个想法是为页面/视图提供深度链接支持,但你不能这样做肯定很烦人。您拥有的选项是:

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

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

  • 导航框架源代码是 Silverlight 工具包的一部分。您可以修改它以支持复杂的对象,但我强烈建议不要这样做。

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

    使用

希望这会有所帮助...

Chris

P.S.我在我的书 Pro Business Applications with Silverlight 4 中讨论了这一点,尽管仅在与上面一样多的深度,因为没有一个特别好的解决方案来解决这个问题:)。

Unfortunately you can't do that. It kind of makes sense, because the idea is to provide deep linking support for pages/views, but it's definitely annoying that you can't do it. The options you have are:

  • For small objects, you could serialise them and pass them to the next view in the query string, although I'd recommend against that approach (different browsers have different number of maximum characters in a URL that they support, and also the object may be out of date if the user bookmarks that page and returns to it).

  • Store the object in a global cache, from which the view being navigated to can access it. Not nice, but it will work.

  • The Navigation Framework source code is a part of the Silverlight Toolkit. You could modify this to support complex objects, but I'd strongly recommend against doing so.

  • Use the MVVM pattern, with one view model used to manage multiple views, and therefore the object would be available to all those views.

Hope this helps...

Chris

P.S. I discuss this in my book Pro Business Applications with Silverlight 4, although only in as much depth as above as there's not a particularly nice solution to the problem :).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文