This documentation is archived and is not being maintained.

WeakEventManager.ProtectedRemoveListener Method

Updated: January 2010

Removes a previously added listener from the provided source.

Namespace:  System.Windows
Assembly:  WindowsBase (in WindowsBase.dll)

protected void ProtectedRemoveListener(
	Object source,
	IWeakEventListener listener
You cannot use methods in XAML.


Type: System.Object

The source to remove listeners from.

Type: System.Windows.IWeakEventListener

The listening class (which must implement IWeakEventListener).

Call this method within your manager class RemoveListener methods on WeakEventManager implementations. RemoveListener is the suggested name for the static method you define on your manager class to enable other classes to remove a listener for your weak event pattern. RemoveListener should take two parameters: the source where the listener is removed, and the listener class. For your RemoveListener implementation, call the ProtectedRemoveListener method on the current manager and pass the same two parameters.

If a call to ProtectedRemoveListener removes the last listener in the list, ProtectedRemoveListener calls the StopListening method internally, which will call your specific StopListening override through polymorphism.

ProtectedRemoveListener removes listeners from a single internal WeakEventManager.ListenerList per source. If your manager implementation maintains more than one list of listeners for each event-source combination, do not use ProtectedRemoveListener. Instead, your implementation should create its own WeakEventManager.ListenerList instances, RemoveListener should remove listeners from the appropriate list, and events should be delivered to the appropriate listener list by calling the DeliverEventToList method instead of the DeliverEvent method.

Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0




January 2010

Fixed incorrect remark.

Content bug fix.