【问题标题】:Add/remove EventHandler multiple times in WPF在 WPF 中多次添加/删除 EventHandler
【发布时间】:2013-01-31 14:43:29
【问题描述】:

如果我多次向一个事件添加(或删除)相同的 EventHandler,那是“坏”吗?内部发生了什么会导致问题的事情吗? (我在 TextBox 上实现数据验证,当 TB 内容变为有效/有效时,它将打开/关闭 MouseDoubleClick 处理程序。)

【问题讨论】:

    标签: wpf event-handling


    【解决方案1】:

    当您尝试多次取消订阅事件时,实际上并没有发生任何事情。

    当您想订阅 到您的处理程序的事件时,您可以确保它尚未订阅。你应该这样做。因为可以订阅多次。当然,前提是您不想这样做...

    当您使用相同的处理程序订阅两次事件时会发生什么?很简单...处理程序在事件的InvocationList 中有两次,所以它被调用了两次。当您再次订阅时,它会被调用 3 次...每次引发事件时,都会调用 InvocationList 中的订阅处理程序。

    您可以查看here ...正如您所看到的...它至少重复了两个已经提出的问题。所以有很多答案:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-03
      • 2014-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-12
      • 2012-09-19
      相关资源
      最近更新 更多