Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Framework / System / Windows / Data / DataChangedEventManager.cs / 1 / DataChangedEventManager.cs
//----------------------------------------------------------------------------
//
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//
// Description: Manager for the DataChanged event in the "weak event listener"
// pattern. See WeakEventTable.cs for an overview.
//
//---------------------------------------------------------------------------
using System;
using System.Windows; // WeakEventManager
namespace System.Windows.Data
{
///
/// Manager for the DataSourceProvider.DataChanged event.
///
public class DataChangedEventManager : WeakEventManager
{
#region Constructors
//
// Constructors
//
private DataChangedEventManager()
{
}
#endregion Constructors
#region Public Methods
//
// Public Methods
//
///
/// Add a listener to the given source's event.
///
public static void AddListener(DataSourceProvider source, IWeakEventListener listener)
{
CurrentManager.ProtectedAddListener(source, listener);
}
///
/// Remove a listener to the given source's event.
///
public static void RemoveListener(DataSourceProvider source, IWeakEventListener 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)
{
DataSourceProvider typedSource = (DataSourceProvider)source;
typedSource.DataChanged += new EventHandler(OnDataChanged);
}
///
/// Stop listening to the given source for the event.
///
protected override void StopListening(object source)
{
DataSourceProvider typedSource = (DataSourceProvider)source;
typedSource.DataChanged -= new EventHandler(OnDataChanged);
}
#endregion Protected Methods
#region Private Properties
//
// Private Properties
//
// get the event manager for the current thread
private static DataChangedEventManager CurrentManager
{
get
{
Type managerType = typeof(DataChangedEventManager);
DataChangedEventManager manager = (DataChangedEventManager)GetCurrentManager(managerType);
// at first use, create and register a new manager
if (manager == null)
{
manager = new DataChangedEventManager();
SetCurrentManager(managerType, manager);
}
return manager;
}
}
#endregion Private Properties
#region Private Methods
//
// Private Methods
//
// event handler for DataChanged event
private void OnDataChanged(object sender, EventArgs 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
- CharacterMetricsDictionary.cs
- Maps.cs
- DurableOperationContext.cs
- TextSimpleMarkerProperties.cs
- DesignTimeVisibleAttribute.cs
- SelectionHighlightInfo.cs
- DataGridViewRowEventArgs.cs
- TemplatedAdorner.cs
- UnsafeNativeMethodsPenimc.cs
- SqlBulkCopy.cs
- ItemList.cs
- FailedToStartupUIException.cs
- CreatingCookieEventArgs.cs
- StreamingContext.cs
- CustomErrorCollection.cs
- TaskSchedulerException.cs
- MenuItemBindingCollection.cs
- Effect.cs
- StickyNoteAnnotations.cs
- CodeCastExpression.cs
- GroupDescription.cs
- Matrix3DStack.cs
- IncrementalReadDecoders.cs
- MessageQueueConverter.cs
- SpellerInterop.cs
- MDIClient.cs
- SecurityChannel.cs
- Error.cs
- CqlParser.cs
- LayoutUtils.cs
- AsmxEndpointPickerExtension.cs
- EncoderParameter.cs
- FixUp.cs
- ProgressBar.cs
- LinqDataSource.cs
- CodeRemoveEventStatement.cs
- ConfigXmlCDataSection.cs
- TrackPoint.cs
- SqlConnection.cs
- CalendarButtonAutomationPeer.cs
- CompiledQueryCacheKey.cs
- SettingsContext.cs
- SortDescription.cs
- SignedPkcs7.cs
- Int32Rect.cs
- CustomDictionarySources.cs
- MsmqBindingElementBase.cs
- MarginCollapsingState.cs
- VirtualPath.cs
- Focus.cs
- TrustLevelCollection.cs
- Literal.cs
- TraceContext.cs
- StorageAssociationTypeMapping.cs
- CurrentChangedEventManager.cs
- CharacterHit.cs
- SafeSecurityHandles.cs
- xmlsaver.cs
- BindingSourceDesigner.cs
- PeerNameResolver.cs
- EllipticalNodeOperations.cs
- LinkButton.cs
- PersonalizationStateInfo.cs
- AttachedPropertyMethodSelector.cs
- HttpModuleActionCollection.cs
- BasePattern.cs
- RadioButtonPopupAdapter.cs
- TableRowCollection.cs
- FrameworkPropertyMetadata.cs
- ViewManager.cs
- PathParser.cs
- PrivilegedConfigurationManager.cs
- CodeTypeDeclarationCollection.cs
- RoleGroupCollection.cs
- RoleGroup.cs
- ConfigXmlDocument.cs
- BitmapEffectDrawing.cs
- GroupStyle.cs
- PatternMatcher.cs
- COM2EnumConverter.cs
- ImageIndexEditor.cs
- BitmapSourceSafeMILHandle.cs
- ExternalFile.cs
- FixedPageProcessor.cs
- altserialization.cs
- PreviewPrintController.cs
- securitymgrsite.cs
- InfoCardRSAPKCS1KeyExchangeDeformatter.cs
- EncryptedPackageFilter.cs
- ImageSourceValueSerializer.cs
- WebSysDisplayNameAttribute.cs
- BatchParser.cs
- SimpleMailWebEventProvider.cs
- XPathDescendantIterator.cs
- WSHttpBindingElement.cs
- IndexerNameAttribute.cs
- JpegBitmapDecoder.cs
- WindowAutomationPeer.cs
- SiteMapNodeItemEventArgs.cs
- ProviderConnectionPointCollection.cs