【问题标题】:Updating GUI from a different class?从不同的类更新 GUI?
【发布时间】:2010-08-02 09:13:32
【问题描述】:

也许这是一个非常基本的问题,如果是,请原谅我 --- 我是 C# 的初学者。

我有一个用于向接收器发送命令的 WPF GUI。命令是 ASCII 文本。现在,我将通信部分分离到一个单独的项目中,因为除了 GUI 之外,我还有使用通信方法的控制台应用程序。通信 DLL 在普通套接字上使用异步方法。

现在的问题是我会有一个循环依赖。 GUI 需要调用通信例程来发送消息,并且例程需要调用 GUI 来显示响应。我知道我可以创建一个通信继承的接口并绕过依赖关系,但这是最好的方法吗?或者这是我设计中的一个缺陷?我基本上想将 GUI 与底层通信层解耦。

【问题讨论】:

    标签: .net wpf circular-dependency


    【解决方案1】:

    您的库 (dll) 不应直接更新 GUI。你应该让它引发事件。理想情况下,事件也将处于更高的抽象级别(“成功接收消息”而不是“成功接收数据包”,但实际上取决于您要公开多少库的低级功能)

    GUI(或控制台应用程序或完全不同的库)现在可以订阅事件并访问事件数据。 GUI,作为更高层知道库,但库不应该知道 GUI(或控制台应用程序)

    【讨论】:

      猜你喜欢
      • 2019-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多