次の方法で共有


IWeakEventListener インターフェイス

定義

WeakEvent パターンと WeakEventManager を通じてイベントを受信するクラスにイベント リスニング サポートを提供します。

public interface class IWeakEventListener
public interface IWeakEventListener
type IWeakEventListener = interface
Public Interface IWeakEventListener
派生

注釈

(ディスパッチャー) は WeakEventManager 、このインターフェイスを実装し、メソッドを ReceiveWeakEvent 事前に呼び出すことによってリスナーとして追加されたクラスでメソッドを呼び出 WeakEventManager すことによってイベントを転送します。

WeakEvent パターンに従う主な理由は、イベント ソースのオブジェクトの有効期間がイベント リスナーから独立している可能性がある場合です。 a の中央イベント ディスパッチを使用すると、ソース オブジェクトの WeakEventManager 有効期間がリスナーを超えた場合でも、リスナーのハンドラーをガベージ コレクション (または手動で消去) できます。 これに対し、通常のイベント フックアップでは、言語固有または同等の言語固有のイベント構文を使用 += すると、引き続き接続されている可能性のあるソースがハンドラーへの強力な参照を保持します。 これにより、リスナー参照がタイムリーにガベージ コレクションされなくなります。

ソースとリスナーの間のリレーションシップが、このパターンの使用を示唆する一般的な状況の 1 つは、データ バインディングのソースからの更新イベントの処理です。

WeakEvent パターンを使用して、アプリケーションの外部にあるイベントをリッスンできます。 必要なのは、for をWeakEventManager定義し、リッスン動作ReceiveWeakEventを提供すること、およびハンドラー参照+=をアタッチするために使用WeakEventManagerすることだけです。

メソッド

ReceiveWeakEvent(Type, Object, EventArgs)

中央のイベント マネージャーからイベントを受信します。

適用対象

こちらもご覧ください