C# emddudley's WeakEventManager的样本

C# emddudley's WeakEventManager的样本,c#,.net,weak-events,weakeventmanager,C#,.net,Weak Events,Weakeventmanager,我正在尝试将Michael Dudley的示例代码改编为我自己的弱事件管理器实现: 我想知道我应该把我自己的处理程序的用户代码放在哪里?我看到: private EventHandler mHandler = (s, e) => { CurrentManager.DeliverEvent(s, e); return; }; 我会用自己的自定义代码替换该表达式的内容吗 谢谢, 凯文在大多数情况下,处理者应该保持原样。正如对该答案的评论所述,处理程序声明甚至没有必要。以下代码

我正在尝试将Michael Dudley的示例代码改编为我自己的弱事件管理器实现:

我想知道我应该把我自己的处理程序的用户代码放在哪里?我看到:

private EventHandler mHandler = (s, e) =>
{
    CurrentManager.DeliverEvent(s, e);
    return;
};
我会用自己的自定义代码替换该表达式的内容吗

谢谢,


凯文

在大多数情况下,处理者应该保持原样。正如对该答案的评论所述,处理程序声明甚至没有必要。以下代码应足以进行监视:

PropertyValuesource.Changed+=DeliverEvent

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

如果您发布了您正试图寻找位置的代码,那么可能会更容易帮助您确定您正试图实现的目标以及应该实现的目标