1

Michael Dudley のサンプル コードを、弱いイベント マネージャーの独自の実装に適合させようとしています。

.NET の WeakEventManager を使用した弱いイベントの実装例

自分のハンドラーのユーザー コードをどこに配置すればよいのだろうか? 私はこれを見る:

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

その式の内容を独自のカスタム コードに置き換えますか?

ありがとうございました、

ケビン

4

1 に答える 1

0

ほとんどの場合、ハンドラーはそのままにしておく必要があります。その回答のコメントにあるように、ハンドラー宣言は必要ありません。次のコードでStartListening十分です。

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

sイベントを配信する前にand/orの値を変更する必要がある場合は、e投稿したハンドラーにそのコードを追加できます。しかし、何があってDeliverEventも呼ばれなければなりません。ループして、ReceiveWeakEvent登録されているすべてのリスナーを呼び出します。独自の に保存しない限り、リスナーのリストを取得する方法はありませんListenerList。したがって、基本的にイベント ハンドラーを変更する場合は、引き続き呼び出す必要がありDeliverEventます。そうしないと、弱いイベント リスナーにイベントが通知されません。

場所を見つけようとしているコードを投稿した場合は、何を達成しようとしているのか、代わりにどこに行くべきかを理解するのに少し簡単になるかもしれません.

于 2012-08-06T17:22:58.490 に答える