适当的地方召集活动?

时间:2008-09-27 17:36:02

标签: .net events event-based-programming

我刚刚开始使用Windows窗体项目。在表单上我有一个列表框,我正在加载产品。当有人双击产品时,我希望它引发一个ProductChanged事件。我的项目中的其他内容将订阅此事件,并在产品更改时更新GUI的其他部分。

我的问题是,该活动应该在哪里,谁应该举起来?该事件应该在表单上并由列表框的双击处理程序引发吗?或者我应该在事件在我的Products类中的位置进行设置,并且列表框会调用此类中的方法以让它知道产品已更改。然后Product类会引发事件?或者应该以另一种方式完成?

4 个答案:

答案 0 :(得分:1)

更改的产品是一个UI事件,如果在表单上引发它,并且其他UI元素对事件有所影响,则会有意义。

答案 1 :(得分:1)

列表框应该引发事件,因为其产品已经更改。

答案 2 :(得分:0)

取决于您的活动表示什么。如果目的是通知订阅者Product对象已被修改,那么它属于Product类,应该由该类中的代码触发。如果目的是通知另一个Product对象被选中,则它属于管理产品列表的视图(您的列表框/表单)。

答案 3 :(得分:0)

名称​​ ProductChanged 表示在更改产品时触发事件。我会在产品类中引发事件,因为在这种情况下,每次更改都会触发事件。如果您在GUI中触发它,然后添加(例如)导入功能,则可能是您在更改后忘记触发事件。