2012-05-08 33 views

回答

0

對於大多數情況下的處理程序應該保持原樣。正如對該答案的評論所述,處理程序聲明甚至不是必需的。爲StartListening下面的代碼應該是足夠了:

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

如果您需要提供您可以在代碼添加到您發佈的處理函數的事件之前修改的s和/或e值。但不管如何,必須調用DeliverEvent。它循環播放併爲所有已註冊的聽衆調用ReceiveWeakEvent,並且除非您將它們存儲在您自己的ListenerList中,否則無法獲取聽衆列表。因此,基本上如果您修改事件處理函數,它仍然必須調用DeliverEvent或者您的弱事件偵聽器將永遠不會收到事件通知。

如果您發佈了您正在尋找的地方代碼,可能會更容易一些,以幫助您找出您正在嘗試完成的任務以及應該去的地方。