Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Framework / MS / Internal / Data / XmlNodeChangedEventManager.cs / 1 / XmlNodeChangedEventManager.cs
//----------------------------------------------------------------------------
//
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//
// Description: Manager for the XmlNodeChanged event in the "weak event listener"
// pattern. See WeakEventTable.cs for an overview.
//
//---------------------------------------------------------------------------
using System;
using System.Xml;
using System.Windows; // WeakEventManager
namespace MS.Internal.Data
{
///
/// Manager for the XmlDocument.XmlNodeChanged event.
///
internal class XmlNodeChangedEventManager : WeakEventManager
{
#region Constructors
//
// Constructors
//
private XmlNodeChangedEventManager()
{
}
#endregion Constructors
#region Public Methods
//
// Public Methods
//
///
/// Add a listener to the given source's event.
///
public static void AddListener(XmlDocument source, IWeakEventListener listener)
{
CurrentManager.ProtectedAddListener(source, listener);
}
///
/// Remove a listener to the given source's event.
///
public static void RemoveListener(XmlDocument 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)
{
XmlNodeChangedEventHandler handler = new XmlNodeChangedEventHandler(OnXmlNodeChanged);
XmlDocument doc = (XmlDocument)source;
doc.NodeInserted += handler;
doc.NodeRemoved += handler;
doc.NodeChanged += handler;
}
///
/// Stop listening to the given source for the event.
///
protected override void StopListening(object source)
{
XmlNodeChangedEventHandler handler = new XmlNodeChangedEventHandler(OnXmlNodeChanged);
XmlDocument doc = (XmlDocument)source;
doc.NodeInserted -= handler;
doc.NodeRemoved -= handler;
doc.NodeChanged -= handler;
}
#endregion Protected Methods
#region Private Properties
//
// Private Properties
//
// get the event manager for the current thread
private static XmlNodeChangedEventManager CurrentManager
{
get
{
Type managerType = typeof(XmlNodeChangedEventManager);
XmlNodeChangedEventManager manager = (XmlNodeChangedEventManager)GetCurrentManager(managerType);
// at first use, create and register a new manager
if (manager == null)
{
manager = new XmlNodeChangedEventManager();
SetCurrentManager(managerType, manager);
}
return manager;
}
}
#endregion Private Properties
#region Private Methods
//
// Private Methods
//
// event handler for XmlNodeChanged event
private void OnXmlNodeChanged(object sender, XmlNodeChangedEventArgs 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
- TabletCollection.cs
- FixedHyperLink.cs
- SmtpDateTime.cs
- AutoScrollExpandMessageFilter.cs
- TraceHandler.cs
- VectorCollection.cs
- SpellCheck.cs
- OdbcCommand.cs
- StringToken.cs
- ExpressionBuilder.cs
- NumericPagerField.cs
- TextParagraphProperties.cs
- MessageBodyMemberAttribute.cs
- infer.cs
- Utils.cs
- SubtreeProcessor.cs
- LocatorGroup.cs
- ConfigurationLoader.cs
- DragDrop.cs
- TextFormatterContext.cs
- XamlToRtfParser.cs
- ClientCultureInfo.cs
- DataRelationPropertyDescriptor.cs
- GenericXmlSecurityToken.cs
- ViewGenerator.cs
- KnowledgeBase.cs
- RuleSettingsCollection.cs
- XPathNodeIterator.cs
- ProjectionCamera.cs
- PopupControlService.cs
- NewArrayExpression.cs
- SslStream.cs
- DesignTimeType.cs
- DataPagerCommandEventArgs.cs
- DrawingVisual.cs
- TimeIntervalCollection.cs
- ApplicationGesture.cs
- Baml2006SchemaContext.cs
- ResponseStream.cs
- BlurEffect.cs
- ConfigurationManagerInternalFactory.cs
- CompoundFileStreamReference.cs
- ReaderWriterLock.cs
- compensatingcollection.cs
- SemaphoreFullException.cs
- DnsPermission.cs
- RegexReplacement.cs
- HandlerBase.cs
- RegexCaptureCollection.cs
- ColumnReorderedEventArgs.cs
- SoapFault.cs
- SHA1.cs
- XmlStringTable.cs
- GlobalizationSection.cs
- UnsafeNativeMethods.cs
- ConnectionOrientedTransportChannelFactory.cs
- SqlDataSourceQueryEditor.cs
- WebServiceTypeData.cs
- AnimationClockResource.cs
- CommonRemoteMemoryBlock.cs
- FunctionDefinition.cs
- CacheHelper.cs
- XmlExceptionHelper.cs
- ConnectionProviderAttribute.cs
- HttpServerChannel.cs
- SettingsPropertyIsReadOnlyException.cs
- WebBrowserProgressChangedEventHandler.cs
- MimeTypeMapper.cs
- Mouse.cs
- FixedTextPointer.cs
- LabelExpression.cs
- LinearKeyFrames.cs
- LifetimeServices.cs
- AnonymousIdentificationSection.cs
- WebProxyScriptElement.cs
- SafeNativeMethods.cs
- BasicViewGenerator.cs
- SemanticAnalyzer.cs
- AudioSignalProblemOccurredEventArgs.cs
- OracleException.cs
- ThicknessAnimation.cs
- PageThemeCodeDomTreeGenerator.cs
- InputLangChangeRequestEvent.cs
- ContextStaticAttribute.cs
- QuaternionAnimationUsingKeyFrames.cs
- XPathPatternParser.cs
- HttpHandlersSection.cs
- XsdBuilder.cs
- OdbcConnectionOpen.cs
- ZipIOExtraFieldZip64Element.cs
- SEHException.cs
- x509utils.cs
- XmlSerializerOperationFormatter.cs
- DownloadProgressEventArgs.cs
- MembershipValidatePasswordEventArgs.cs
- DataGridColumnHeadersPresenter.cs
- SqlDataSourceConfigureFilterForm.cs
- XamlStyleSerializer.cs
- TypedElement.cs
- HttpStreamXmlDictionaryWriter.cs