【问题标题】:How do I pass messages from my main Window to its Pages using WPF?如何使用 WPF 将消息从主窗口传递到其页面?
【发布时间】:2012-06-14 20:35:58
【问题描述】:

我有一个使用 WPF 的 C# 应用程序,该应用程序由一个窗口组成,该窗口在一个网格中的框架内保存四个页面。主窗口通过套接字接收消息。我正在尝试将这些消息发送到适当的页面进行处理,但不确定 1)如何正确引用它和 2)如何将消息传递给页面或调用页面的函数之一来处理消息。 Window、Grid、Frames 和 Pages 在 xaml 中构建,以防万一。

在我编写的一个类似的 Windows 窗体应用程序中,我使用委托进行回调。主窗口会收到一条消息,然后调用一个表单的委托 - 看起来像这样:

Invoke(myFormInstance.myFormDelegateFunction, myMessage);

myFormInstance.MdiParent 设置为此窗口的位置。

我基本上是在尝试找到等效的 WPF,或者可能是更好的方法。我研究了 WPF 调度程序,我认为这可能是一种直接访问页面组件的方式 - 但我希望页面本身处理消息并决定更新哪些组件以及如何更新。

有什么建议吗?调度程序是否以某种方式解决了这个问题?

谢谢。

【问题讨论】:

    标签: c# wpf xaml delegates dispatcher


    【解决方案1】:

    我会尝试使用 MVVM Light Toolkit,特别是 Messenger 对象。它允许类之间的通信。本质上,发送者只会通知带有与消息相关的任何数据的消息,然后为该特定消息注册的任何类都可以根据自己的选择处理它。所以你的套接字消息的主要接收者可以通知它已经收到一个套接字消息,然后将套接字消息作为数据附加。

    http://mvvmlight.codeplex.com/

    【讨论】:

    • 我听说过这件事,但只是简单地调查了一下。看起来其他人也同意这也是要走的路。谢谢乔希!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-25
    • 1970-01-01
    相关资源
    最近更新 更多