![]() |
1
1
汤姆·弗雷是对的。如果希望某个事件上的行为由通常触发该事件的类处理,则首选技术是重写触发该事件以执行任务的相应方法。事件基础设施是过度杀伤力的,并不是真正为您在这里要做的而设计的。 原因是您希望视图的每个实例都执行这些操作。您不希望这些操作在运行时由视图外部的事物动态分配和确定(这就是事件的用途)。 但是,在执行这种重写时,需要包括的一件重要事情是对基类实现的调用。如果不这样做,您可能会遇到奇怪的错误:
调用基类将触发事件,并可能执行其他操作。如果您希望在事件激发之前完成一些事情,并且任何外部订阅者都要完成他们的事情,请将其放在对基的调用之前。如果你想在所有事件都被触发和处理后做点什么,就把它放在后面。假想的例子:如果您的控件处理了一些数据绑定,那么您可能希望在调用base之前验证数据绑定是否存在,并且您可能希望在调用base之后验证它是否有效(以防处理程序咀嚼了某些内容)。 从 MSDN :
|
![]() |
2
2
为什么不重写派生类中的一些方法,例如:
|
![]() |
OREO · 如何在不实际单击复选框的情况下选中它 1 年前 |
![]() |
Dan · 在元素外部设置html点击处理程序点击后立即触发 1 年前 |
![]() |
Mero · Svelte在父事件调用上调用新的嵌套事件处理程序 1 年前 |
|
iorice · usercontrol dll中的组件事件 1 年前 |
![]() |
Awin · 点击事件功能不适用于Vue组件 1 年前 |
![]() |
Kiwi · 将可共享的自定义数据添加到事件MS图形api 1 年前 |