Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Base / System / ComponentModel / CurrentChangingEventManager.cs / 1305600 / CurrentChangingEventManager.cs
//----------------------------------------------------------------------------
//
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//
// Description: Manager for the CurrentChanging event in the "weak event listener"
// pattern. See WeakEventTable.cs for an overview.
//
//---------------------------------------------------------------------------
using System;
using System.ComponentModel; // ICollectionView.CurrentChanging
using System.Windows; // WeakEventManager
namespace System.ComponentModel
{
///
/// Manager for the ICollectionView.CurrentChanging event.
///
public class CurrentChangingEventManager : WeakEventManager
{
#region Constructors
//
// Constructors
//
private CurrentChangingEventManager()
{
}
#endregion Constructors
#region Public Methods
//
// Public Methods
//
///
/// Add a listener to the given source's event.
///
public static void AddListener(ICollectionView source, IWeakEventListener listener)
{
if (source == null)
throw new ArgumentNullException("source");
if (listener == null)
throw new ArgumentNullException("listener");
CurrentManager.ProtectedAddListener(source, listener);
}
///
/// Remove a listener to the given source's event.
///
public static void RemoveListener(ICollectionView source, IWeakEventListener listener)
{
/* for app-compat, allow RemoveListener(null, x) - it's a no-op (see Dev10 796788)
if (source == null)
throw new ArgumentNullException("source");
*/
if (listener == null)
throw new ArgumentNullException("listener");
CurrentManager.ProtectedRemoveListener(source, listener);
}
#endregion Public Methods
#region Protected Methods
//
// Protected Methods
//
///
/// Listen to the given source for the event.
///
protected override void StartListening(object source)
{
ICollectionView typedSource = (ICollectionView)source;
typedSource.CurrentChanging += new CurrentChangingEventHandler(OnCurrentChanging);
}
///
/// Stop listening to the given source for the event.
///
protected override void StopListening(object source)
{
ICollectionView typedSource = (ICollectionView)source;
typedSource.CurrentChanging -= new CurrentChangingEventHandler(OnCurrentChanging);
}
#endregion Protected Methods
#region Private Properties
//
// Private Properties
//
// get the event manager for the current thread
private static CurrentChangingEventManager CurrentManager
{
get
{
Type managerType = typeof(CurrentChangingEventManager);
CurrentChangingEventManager manager = (CurrentChangingEventManager)GetCurrentManager(managerType);
// at first use, create and register a new manager
if (manager == null)
{
manager = new CurrentChangingEventManager();
SetCurrentManager(managerType, manager);
}
return manager;
}
}
#endregion Private Properties
#region Private Methods
//
// Private Methods
//
// event handler for CurrentChanging event
private void OnCurrentChanging(object sender, CurrentChangingEventArgs args)
{
DeliverEvent(sender, args);
}
#endregion Private Methods
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
//----------------------------------------------------------------------------
//
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//
// Description: Manager for the CurrentChanging event in the "weak event listener"
// pattern. See WeakEventTable.cs for an overview.
//
//---------------------------------------------------------------------------
using System;
using System.ComponentModel; // ICollectionView.CurrentChanging
using System.Windows; // WeakEventManager
namespace System.ComponentModel
{
///
/// Manager for the ICollectionView.CurrentChanging event.
///
public class CurrentChangingEventManager : WeakEventManager
{
#region Constructors
//
// Constructors
//
private CurrentChangingEventManager()
{
}
#endregion Constructors
#region Public Methods
//
// Public Methods
//
///
/// Add a listener to the given source's event.
///
public static void AddListener(ICollectionView source, IWeakEventListener listener)
{
if (source == null)
throw new ArgumentNullException("source");
if (listener == null)
throw new ArgumentNullException("listener");
CurrentManager.ProtectedAddListener(source, listener);
}
///
/// Remove a listener to the given source's event.
///
public static void RemoveListener(ICollectionView source, IWeakEventListener listener)
{
/* for app-compat, allow RemoveListener(null, x) - it's a no-op (see Dev10 796788)
if (source == null)
throw new ArgumentNullException("source");
*/
if (listener == null)
throw new ArgumentNullException("listener");
CurrentManager.ProtectedRemoveListener(source, listener);
}
#endregion Public Methods
#region Protected Methods
//
// Protected Methods
//
///
/// Listen to the given source for the event.
///
protected override void StartListening(object source)
{
ICollectionView typedSource = (ICollectionView)source;
typedSource.CurrentChanging += new CurrentChangingEventHandler(OnCurrentChanging);
}
///
/// Stop listening to the given source for the event.
///
protected override void StopListening(object source)
{
ICollectionView typedSource = (ICollectionView)source;
typedSource.CurrentChanging -= new CurrentChangingEventHandler(OnCurrentChanging);
}
#endregion Protected Methods
#region Private Properties
//
// Private Properties
//
// get the event manager for the current thread
private static CurrentChangingEventManager CurrentManager
{
get
{
Type managerType = typeof(CurrentChangingEventManager);
CurrentChangingEventManager manager = (CurrentChangingEventManager)GetCurrentManager(managerType);
// at first use, create and register a new manager
if (manager == null)
{
manager = new CurrentChangingEventManager();
SetCurrentManager(managerType, manager);
}
return manager;
}
}
#endregion Private Properties
#region Private Methods
//
// Private Methods
//
// event handler for CurrentChanging event
private void OnCurrentChanging(object sender, CurrentChangingEventArgs args)
{
DeliverEvent(sender, args);
}
#endregion Private Methods
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- VirtualizedContainerService.cs
- KeyboardNavigation.cs
- SinglePageViewer.cs
- NodeLabelEditEvent.cs
- CaseExpr.cs
- ExceptionNotification.cs
- ZipFileInfoCollection.cs
- Helper.cs
- ApplicationFileCodeDomTreeGenerator.cs
- TableLayoutRowStyleCollection.cs
- DataSourceXmlElementAttribute.cs
- ListViewInsertionMark.cs
- SQLByteStorage.cs
- IteratorFilter.cs
- DesignerDataConnection.cs
- ExeContext.cs
- InfoCardArgumentException.cs
- XmlSchemaInclude.cs
- ZipArchive.cs
- ServiceControllerDesigner.cs
- DecoderReplacementFallback.cs
- OleDbParameterCollection.cs
- documentsequencetextcontainer.cs
- RenderOptions.cs
- Token.cs
- ReachBasicContext.cs
- Win32.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- PassportIdentity.cs
- ErrorStyle.cs
- MatrixAnimationBase.cs
- MobileUITypeEditor.cs
- PointF.cs
- Size.cs
- SchemeSettingElementCollection.cs
- WebEventCodes.cs
- FixedSOMTable.cs
- TypeResolver.cs
- ListControlDataBindingHandler.cs
- XslNumber.cs
- TdsParameterSetter.cs
- DataViewListener.cs
- SQLDecimalStorage.cs
- GroupItem.cs
- DynamicResourceExtension.cs
- SqlParameter.cs
- EarlyBoundInfo.cs
- VScrollBar.cs
- XmlSerializerVersionAttribute.cs
- DataControlButton.cs
- DragEventArgs.cs
- ReaderWriterLockSlim.cs
- ApplicationInfo.cs
- ButtonPopupAdapter.cs
- EventPrivateKey.cs
- BCryptSafeHandles.cs
- EnvelopedPkcs7.cs
- GiveFeedbackEventArgs.cs
- EpmTargetPathSegment.cs
- sqlcontext.cs
- BitmapCodecInfoInternal.cs
- SimpleHandlerFactory.cs
- EmbeddedMailObject.cs
- SafeEventLogWriteHandle.cs
- DurationConverter.cs
- TextEditor.cs
- CompilerScopeManager.cs
- MimeTypePropertyAttribute.cs
- RoleService.cs
- CommandHelper.cs
- Span.cs
- TextEditorTables.cs
- TextComposition.cs
- EntityDataSourceSelectedEventArgs.cs
- TraceUtility.cs
- StreamAsIStream.cs
- UriTemplateEquivalenceComparer.cs
- Point3DCollectionValueSerializer.cs
- XmlMtomReader.cs
- NameTable.cs
- SqlHelper.cs
- MetabaseServerConfig.cs
- HotSpot.cs
- OdbcParameterCollection.cs
- DependencyObjectProvider.cs
- Token.cs
- TableItemPatternIdentifiers.cs
- XmlSchemaFacet.cs
- StylusEventArgs.cs
- MessageQueue.cs
- VisualBasicReference.cs
- FileClassifier.cs
- InteropAutomationProvider.cs
- VirtualPathExtension.cs
- XmlSchemaAnnotation.cs
- OutputCacheProfileCollection.cs
- DataListItemEventArgs.cs
- CommonGetThemePartSize.cs
- DeviceSpecificDialogCachedState.cs
- QueryStringConverter.cs