如何从其他类获取事件



类之间传递事件的最佳方法是什么?问题是:我有一个连接类,当连接特定的 USB 设备时,我希望另一个类的 GUI(它将配置设备)具有"已连接"标志,当断开连接时具有"断开连接"标志。我正在考虑创建一个新的事件处理程序,并将此事件处理程序添加到UI控制器类中,连接类将"触发"事件,这是正确的,还是有更好的方法?

有两种方法可以解决这个问题。一种是在连接状态更改时触发一个事件。GUI 可以侦听事件并相应地更新其显示。这是一个相对简单的模型,并且在不同的库中得到了很好的支持,因为事件是 C# 语言的一部分。

第二种方法是使用 Windows Presentation Foundation 或类似的库,方法是通过数据绑定。UI 控件"绑定"到连接类,当连接类的属性更新时,UI 会自动更新。设置起来稍微复杂一些,并且特定于库(链接适用于 WPF)。然而,这是一个更加强大和灵活的概念。

您也可以

尝试使用Microsoft Prism中的EventAggregator。我更喜欢它,因为它是高度解耦的,而且也相当轻量级。

更多关于棱镜和EventAggregator

http://msdn.microsoft.com/en-us/library/ff921122(v=pandp.20).aspx

相关内容

  • 没有找到相关文章

最新更新