0

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

我的问题是,该事件应该在哪里以及应该由谁提出?事件是否应该在表单上并由列表框的双击处理程序引发?或者我应该在我的 Products 类中的事件所在的位置设置它,并且列表框调用此类上的方法以让它知道产品已更改。然后 Product 类会引发事件?还是应该以其他方式完成?

4

4 回答 4

1

更改的产品是一个 UI 事件,如果它在表单上引发,并且其他 UI 元素订阅该事件,这将是有意义的。

于 2008-09-27T17:37:56.560 回答
1

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

于 2008-09-27T17:38:39.553 回答
0

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

于 2008-09-27T19:02:34.810 回答
0

取决于你的事件意味着什么。如果目的是通知订阅者 Product 对象已被修改,那么它属于 Product 类并且应该由该类中的代码触发。如果目的是通知选择了另一个产品对象,那么它属于管理产品列表(您的列表框/表单)的视图。

于 2008-09-27T17:42:21.760 回答