【问题标题】:How to communicate between the Views in the Silverlight 3.0 application?Silverlight 3.0 应用程序中的视图之间如何通信?
【发布时间】:2010-10-16 06:52:27
【问题描述】:

我正在基于 Silverlight 导航应用程序模板构建 Silverlight 3.0 应用程序。我遇到的一个障碍是页面之间的通信。例如,我在一个页面中,我想启动另一个页面并向其发送一些数据。我不知道如何做到这一点。

有什么想法吗?

【问题讨论】:

  • 你的意思是从原始页面发送一些数据还是向服务器发送请求并让新页面得到响应?
  • 哦,你在使用 MVVM 吗?和/或 WCF RIA 服务?我已经阅读了您最近提出的一些问题 - 我还在构建一个 Silverlight 3 导航应用程序,并且遇到了类似的问题。

标签: silverlight-3.0 navigation communication


【解决方案1】:

你有两个选择

  1. 使用发布/订阅模式,我以前没有使用过,但在某些情况下它很有用,但我认为它不会解决你的问题。
  2. 使用请求参数,基本上当你导航到新视图时,这样调用它

    NavigationService.Navigate(new Uri("/HomePage.xaml?HomePageId=12", UriKind.Relative));

您可以在其中添加一些 string.format 以使其更整洁,但您明白了,然后在新视图上,在页面加载时使用 string queryParam = HtmlPage.Document.QueryString["HomePageId"]; 来获取您希望显示的信息的 ID。

应该可以的。

【讨论】:

    【解决方案2】:

    我找到了一个不涉及太多复杂性的有效解决方案。我正在使用 LocalMessageSenderLocalMessageReceiver 对象。这些对象的最初目的是让同一个网页上的 2 个 silverlight 应用程序相互交谈,但它同样擅长让 2 个视图相互交谈。

    用法非常简单。请参阅此example 了解用法。

    【讨论】:

      【解决方案3】:

      Jesse Liberty 对此有很好的blog post。我自己在一个多页 Silverlight 应用程序中使用了那里描述的技术。

      我不确定您是否可以将其与 Silverlight 导航应用程序模板一起应用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-06-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-26
        • 2011-07-08
        • 2011-03-01
        相关资源
        最近更新 更多