如何在Silverlight 3.0应用程序中的视图之间进行通信?

时间:2009-12-17 06:11:07

标签: silverlight-3.0 navigation communication

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

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

Jesse Liberty对此非常了解blog post。我在多页Silverlight应用程序中使用自己描述的技术。

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

答案 1 :(得分:1)

您有2个选项

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

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

  3. 你可以在那里打一些string.format来使它更​​整洁,但你明白了,然后在新的View上,在页面加载时使用string queryParam = HtmlPage.Document.QueryString["HomePageId"];来获取你想要显示的信息的Id。

    应该这样做。

答案 2 :(得分:1)

我找到了一个不涉及太多复杂性的有效解决方案。我正在使用LocalMessageSenderLocalMessageReceiver个对象。这些对象的最初目的是在同一个网页上有2个silverlight应用程序与每个应用程序进行对话,但是它们在2个视图相互通信方面同样出色。

用法非常简单。有关用法,请参阅此example