silverlight - oob silverlight应用程序如何通过windows进行通信

标签 silverlight silverlight-5.0

如果我在 oob 应用程序中有两个窗口,我该如何在它们之间进行通信?

这是允许多个窗口的 silverlight 5 的新功能。

最佳答案

它们在通用应用程序中运行。因此它们共享相同的静态数据。因此通信选择的范围非常大。这是一个例子:-

public class MessageEventArgs : EventArgs
{
      public MessageEventArgs(object payload)
      {
           Payload = payload;
      }

      public object Payload {get; private set; }
}

public class Messenger
{
    private static readonly Messenger _current = new Messenger();
    public static Messenger Current { get { return _current; } }

    public event EventHandler<MessageEventArgs> MessageReceived;

    public void Send(object payload)
    {
          if (MessageReceived != null)
               MessageReceived(this, new MessageEventArgs(payload));
    }
}

所有窗口都可以将处理程序附加到 Messenger.Current.MessageReceived(只要确保在窗口关闭时分离)并且任何窗口都可以调用 Messenger.Current.Send .

好吧,你实际上不会使用这段代码,它有点垃圾,关键是 SL5 中的 Windows 不是孤立的。您可以创建所需的任何内部应用程序通信机制。

关于silverlight - oob silverlight应用程序如何通过windows进行通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7731571/

相关文章:

visual-studio-2010 - 为什么我的 Visual Studio 2010 Silverlight 解决方案在 "Clean"上完全中断?

wpf - 父子数据网格在 MVVM 中具有不同的 ItemsSource

c# - 如何编写简单的 Silverlight 单元测试?

c# - 我们如何在将数据绑定(bind)到 Windows Phone 中的文本 block 时处理空值

c# - DataContractJsonSerializer 和 JsonConvert 给出不同的结果

macos - 在 silverlight 5 中以编程方式禁用硬件加速 h.264 视频解码的任何方法?

silverlight - 使用 F# 创建 Silverlight 3 应用程序

silverlight - Caliburn.Micro:从ViewModel执行时,如何为ActionExecutionContext提供对 View 的引用

c# - 使用 Silverlight 时防止 ASP.NET session 超时

c# - 在给定路径创建 XML 文档