簡體   English   中英

emddudley的WeakEventManager的示例

[英]emddudley's WeakEventManager's sample

我正在嘗試將Michael Dudley的示例代碼改編為自己的弱事件管理器實現:

使用.NET的WeakEventManager實現弱事件的示例實現

我想知道如何將我的用戶代碼放在我自己的處理程序中? 我看到這個:

private EventHandler mHandler = (s, e) =>
{
    CurrentManager.DeliverEvent(s, e);
    return;
};

我會用自己的自定義代碼替換該表達式的內容嗎?

謝謝,

凱文

在大多數情況下,處理程序應保持原樣。 作為對該答案的評論,甚至不需要處理程序聲明。 以下代碼用於StartListening應該足夠了:

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

如果在傳遞事件之前需要修改s和/或e的值,則可以將該代碼添加到發布的處理程序中。 但是無論如何, DeliverEvent必須調用DeliverEvent 它循環並為所有注冊的偵聽器調用ReceiveWeakEvent ,除非您將它們存儲在自己的ListenerList中,否則無法獲得偵聽ListenerList 因此,基本上,如果您修改事件處理程序,它仍必須調用DeliverEvent否則您的弱事件偵聽器將永遠不會收到該事件的通知。

如果您發布了要查找位置的代碼,可能會更容易一些,以幫助您弄清要完成的任務以及應該去的地方。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM