Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Data / DataChangedEventManager.cs / 1305600 / 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)
{
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(DataSourceProvider 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)
{
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
- WebPartCatalogAddVerb.cs
- FontFamilyValueSerializer.cs
- PeerApplication.cs
- DeviceOverridableAttribute.cs
- ListView.cs
- GridViewRow.cs
- EntityCommandDefinition.cs
- XmlText.cs
- RelationshipNavigation.cs
- DomNameTable.cs
- ResourceProviderFactory.cs
- SqlPersonalizationProvider.cs
- TimeSpanMinutesConverter.cs
- RectAnimationBase.cs
- HtmlTable.cs
- HostingEnvironmentException.cs
- MultipleViewPattern.cs
- MultiTrigger.cs
- Stackframe.cs
- NameObjectCollectionBase.cs
- GB18030Encoding.cs
- HijriCalendar.cs
- PropagatorResult.cs
- Event.cs
- HtmlShim.cs
- FloaterParagraph.cs
- BigInt.cs
- TrustSection.cs
- DataObjectAttribute.cs
- ParserContext.cs
- PolicyValidationException.cs
- QuotedPrintableStream.cs
- PropertyTabAttribute.cs
- XamlReader.cs
- DirectionalLight.cs
- LineGeometry.cs
- ToolStripArrowRenderEventArgs.cs
- FindRequestContext.cs
- XmlWhitespace.cs
- Module.cs
- CompositeFontInfo.cs
- SendActivityValidator.cs
- DataGridViewSelectedColumnCollection.cs
- Brushes.cs
- SecurityContext.cs
- XsdDuration.cs
- Solver.cs
- FontResourceCache.cs
- _PooledStream.cs
- CodeDirectionExpression.cs
- StrokeNodeEnumerator.cs
- ObjectItemLoadingSessionData.cs
- Quad.cs
- Module.cs
- XsltFunctions.cs
- ObjectStateManager.cs
- DisplayInformation.cs
- DrawingDrawingContext.cs
- XmlILCommand.cs
- Signature.cs
- PassportPrincipal.cs
- QilIterator.cs
- GlyphRunDrawing.cs
- DataGridComponentEditor.cs
- SrgsGrammarCompiler.cs
- EditorOptionAttribute.cs
- DrawingGroup.cs
- CodeChecksumPragma.cs
- CapabilitiesRule.cs
- HttpContext.cs
- XmlWrappingWriter.cs
- serverconfig.cs
- EntityDataSourceViewSchema.cs
- Thickness.cs
- XmlSchemaRedefine.cs
- AuthenticationSection.cs
- Bits.cs
- Grammar.cs
- ConsoleKeyInfo.cs
- MessagePropertyVariants.cs
- RelatedPropertyManager.cs
- DoubleCollectionValueSerializer.cs
- ConstNode.cs
- UriTemplateCompoundPathSegment.cs
- HandlerWithFactory.cs
- Image.cs
- ScriptingAuthenticationServiceSection.cs
- Preprocessor.cs
- Buffer.cs
- Set.cs
- FormatterServices.cs
- TextTreeNode.cs
- FactoryRecord.cs
- CacheOutputQuery.cs
- DependencySource.cs
- WSSecurityPolicy12.cs
- XmlAttributeCollection.cs
- GroupDescription.cs
- ElementHostPropertyMap.cs
- JoinQueryOperator.cs