WeakEventManager Class
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Provides a base class for the event manager that is used in the weak event pattern. The manager adds and removes listeners for events (or callbacks) that also use the pattern.
public ref class WeakEventManager abstract : System::Windows::Threading::DispatcherObject
public abstract class WeakEventManager : System.Windows.Threading.DispatcherObject
type WeakEventManager = class
inherit DispatcherObject
Public MustInherit Class WeakEventManager
Inherits DispatcherObject
- Inheritance
- Derived
Remarks
You typically use the weak event pattern when the event source has an object lifetime that is independent of the event listeners. Using the central event dispatching capability of a WeakEventManager allows the listener's handlers to be garbage collected even if the source object persists. By contrast, a regular event hookup using the +=
operator causes the potentially disconnected source to hold a reference to the listeners. This prevents the receiver from being garbage collected in a timely fashion.
One common situation where the lifetime relationships between sources and listeners should use of the weak event pattern is the handling of update events coming from data bindings.
The weak event pattern can also be used for callbacks and regular events.
Notes to Implementers
For an example of a custom WeakEventManager, see Weak Event Patterns.
Constructors
WeakEventManager() |
Initializes base class values when it is used as the initializer by the constructor of a derived class. |
Properties
Dispatcher |
Gets the Dispatcher this DispatcherObject is associated with. (Inherited from DispatcherObject) |
Item[Object] |
Gets or sets the data being stored for the specified source. |
ReadLock |
Establishes a read-lock on the underlying data table, and returns an IDisposable. |
WriteLock |
Establishes a write-lock on the underlying data table, and returns an IDisposable. |
Methods
CheckAccess() |
Determines whether the calling thread has access to this DispatcherObject. (Inherited from DispatcherObject) |
DeliverEvent(Object, EventArgs) |
Delivers the event being managed to each listener. |
DeliverEventToList(Object, EventArgs, WeakEventManager+ListenerList) |
Delivers the event being managed to each listener in the provided list. |
Equals(Object) |
Determines whether the specified object is equal to the current object. (Inherited from Object) |
GetCurrentManager(Type) |
Returns the WeakEventManager implementation that is used for the provided type. |
GetHashCode() |
Serves as the default hash function. (Inherited from Object) |
GetType() |
Gets the Type of the current instance. (Inherited from Object) |
MemberwiseClone() |
Creates a shallow copy of the current Object. (Inherited from Object) |
NewListenerList() |
Returns a new object to contain listeners to an event. |
ProtectedAddHandler(Object, Delegate) |
Adds the specified delegate as an event handler of the specified source. |
ProtectedAddListener(Object, IWeakEventListener) |
Adds the provided listener to the provided source for the event being managed. |
ProtectedRemoveHandler(Object, Delegate) |
Removes the previously added handler from the specified source. |
ProtectedRemoveListener(Object, IWeakEventListener) |
Removes a previously added listener from the provided source. |
Purge(Object, Object, Boolean) |
Removes inactive listener entries from the data list for the provided source. Returns |
Remove(Object) |
Removes all listeners for the specified source. |
ScheduleCleanup() |
Requests that a purge of unused entries in the underlying listener list be performed on a lower priority thread. |
SetCurrentManager(Type, WeakEventManager) |
Sets the current manager for the specified manager type. |
StartListening(Object) |
When overridden in a derived class, starts listening for the event being managed. After the StartListening(Object) method is first called, the manager should be in the state of calling DeliverEvent(Object, EventArgs) or DeliverEventToList(Object, EventArgs, WeakEventManager+ListenerList) whenever the relevant event from the provided source is handled. |
StopListening(Object) |
When overridden in a derived class, stops listening on the provided source for the event being managed. |
ToString() |
Returns a string that represents the current object. (Inherited from Object) |
VerifyAccess() |
Enforces that the calling thread has access to this DispatcherObject. (Inherited from DispatcherObject) |