我有一个带有3个按钮的CompositeControl
,我不希望这些按钮成为CompositeControl
的公共成员。但我也希望单独公开他们的Click事件,以便该控件的用户可以订阅它们。
我不知道如何在不重复控制中的相同事件并单独提升每个按钮的Click事件的情况下执行此操作。
答案 0 :(得分:2)
我不知道如何在不重复控制中的相同事件并单独提升每个按钮的Click事件的情况下执行此操作。
这是处理此问题的正确方法。您需要复制该事件,但要为其指定一个新的正确名称。
通常,这意味着使用与按钮活动相关的名称而不是按钮本身公开“点击事件”。例如,如果您有一个刷新按钮,我会将事件公开为:
public event EventHandler RefreshRequested;
然后,在内部,您将听取按钮的单击事件并引发刷新请求的事件。这也为您提供了更改内部表示的灵活性(例如,如果您想使用除按钮之外的其他内容)。