IWeakEventListener インターフェイス

定義

WeakEvent パターンと WeakEventManagerを介してイベントを受信することを期待するクラスのイベント リッスンサポートを提供します。

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

注釈

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

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

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

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

メソッド

名前 説明
ReceiveWeakEvent(Type, Object, EventArgs)

一元化されたイベント マネージャーからイベントを受信します。

適用対象

こちらもご覧ください