IWeakEventListener インターフェイス


WeakEvent パターンと WeakEventManager を通じてイベントを受信するクラスにイベント リスニング サポートを提供します。Provides event listening support for classes that expect to receive events through the WeakEvent pattern and a WeakEventManager.

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


( WeakEventManagerディスパッチャー) は、このインターフェイスを実装するクラスReceiveWeakEventに対してメソッドを呼び出し、事前にメソッドを呼び出すWeakEventManagerことによってリスナーとして追加されたイベントを転送します。The WeakEventManager (a dispatcher) forwards an event by calling the ReceiveWeakEvent method on classes that implement this interface, and that have been added as listeners by calling WeakEventManager methods beforehand.

WeakEvent パターンに従う主な理由は、イベントソースのオブジェクトの有効期間がイベントリスナーに依存しない可能性がある場合です。The principal reason for following the WeakEvent pattern is when the event source has an object lifetime that is potentially independent of the event listeners. の中心的なWeakEventManagerイベントディスパッチを使用すると、リスナーのハンドラーをガベージコレクション (または手動で削除) することができます。ソースオブジェクトの有効期間がリスナーを超える場合でも同様です。Using the central event dispatching of a WeakEventManager enables the handlers for listeners to be garbage collected (or manually purged) even if the source object lifetime extends beyond the listeners. これに対して、または同等+=の言語固有のイベント構文を使用する通常のイベントフックでは、まだ接続されている可能性のあるソースがハンドラーへの強い参照を保持します。By contrast, a normal event hookup using += or equivalent language-specific event syntax causes the potentially still-connected source to hold a strong reference to the handlers. これにより、リスナー参照がガベージコレクションの対象になります。This keeps the listener references from being garbage collected in a timely fashion.

ソースとリスナー間のリレーションシップによってこのパターンの使用が提案される1つの一般的な状況は、データバインディングのソースからの更新イベントの処理です。One common situation where the relationships between sources and listeners suggests the use of this pattern is the handling of update events coming from sources for data bindings.

WeakEvent パターンを使用すると、アプリケーションの外部にあるイベントをリッスンできます。You can use the WeakEvent pattern to listen for events that are external to your application. を定義WeakEventManagerし、でリッスン動作を指定し、を使用ReceiveWeakEvent WeakEventManagerしてではなく+=ハンドラー参照をアタッチするだけです。You only need to define a WeakEventManager for it, provide listening behavior in ReceiveWeakEvent, and use the WeakEventManager to attach the handler references rather than +=.


ReceiveWeakEvent(Type, Object, EventArgs)

中央のイベント マネージャーからイベントを受信します。Receives events from the centralized event manager.