如何从其他课程获取活动?

时间:2012-09-27 00:52:10

标签: c# user-interface event-handling

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

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

您也可以尝试使用Microsoft Prism中的EventAggregator。我更喜欢它,因为它非常分离并且相当轻便。

更多关于Prism和EventAggregator

的信息

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