【发布时间】:2013-01-31 14:43:29
【问题描述】:
如果我多次向一个事件添加(或删除)相同的 EventHandler,那是“坏”吗?内部发生了什么会导致问题的事情吗? (我在 TextBox 上实现数据验证,当 TB 内容变为有效/有效时,它将打开/关闭 MouseDoubleClick 处理程序。)
【问题讨论】:
标签: wpf event-handling
如果我多次向一个事件添加(或删除)相同的 EventHandler,那是“坏”吗?内部发生了什么会导致问题的事情吗? (我在 TextBox 上实现数据验证,当 TB 内容变为有效/有效时,它将打开/关闭 MouseDoubleClick 处理程序。)
【问题讨论】:
标签: wpf event-handling
当您尝试多次取消订阅事件时,实际上并没有发生任何事情。
当您想订阅 到您的处理程序的事件时,您可以确保它尚未订阅。你应该这样做。因为可以订阅多次。当然,前提是您不想这样做...
当您使用相同的处理程序订阅两次事件时会发生什么?很简单...处理程序在事件的InvocationList 中有两次,所以它被调用了两次。当您再次订阅时,它会被调用 3 次...每次引发事件时,都会调用 InvocationList 中的订阅处理程序。
您可以查看here ...正如您所看到的...它至少重复了两个已经提出的问题。所以有很多答案:)
【讨论】: