2012-05-08 34 views

回答

0

对于大多数情况下的处理程序应该保持原样。正如对该答案的评论所述,处理程序声明甚至不是必需的。为StartListening下面的代码应该是足够了:

((PropertyValue)source).Changed += DeliverEvent;

如果您需要提供您可以在代码添加到您发布的处理函数的事件之前修改的s和/或e值。但不管如何,必须调用DeliverEvent。它循环播放并为所有已注册的听众调用ReceiveWeakEvent,并且除非您将它们存储在您自己的ListenerList中,否则无法获取听众列表。因此,基本上如果您修改事件处理函数,它仍然必须调用DeliverEvent或者您的弱事件侦听器将永远不会收到事件通知。

如果您发布了您正在寻找的地方代码,可能会更容易一些,以帮助您找出您正在尝试完成的任务以及应该去的地方。