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
- SiteMapNodeItemEventArgs.cs
- SafeEventLogWriteHandle.cs
- ItemContainerGenerator.cs
- SimpleHandlerBuildProvider.cs
- Color.cs
- RequestQueryProcessor.cs
- LinearQuaternionKeyFrame.cs
- XmlSchemaParticle.cs
- NodeFunctions.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- WebServiceClientProxyGenerator.cs
- CodeRemoveEventStatement.cs
- WindowsEditBox.cs
- DocumentsTrace.cs
- XhtmlBasicImageAdapter.cs
- Int32KeyFrameCollection.cs
- CommandID.cs
- SqlBuffer.cs
- ServicePoint.cs
- EventArgs.cs
- TcpChannelListener.cs
- TextContainerHelper.cs
- XmlSchemaNotation.cs
- unsafenativemethodsother.cs
- WrappedKeySecurityTokenParameters.cs
- ThreadExceptionDialog.cs
- BuiltInExpr.cs
- ProviderCollection.cs
- ColumnPropertiesGroup.cs
- CachedPathData.cs
- ClientRoleProvider.cs
- PlatformNotSupportedException.cs
- SqlTransaction.cs
- TextRunCacheImp.cs
- GridViewHeaderRowPresenter.cs
- TreeWalkHelper.cs
- XmlTextReader.cs
- XomlCompilerResults.cs
- FilteredXmlReader.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- CommandBinding.cs
- DocumentPage.cs
- EmbeddedMailObjectCollectionEditor.cs
- CopyOnWriteList.cs
- ReceiveContextCollection.cs
- SoapHeader.cs
- DataGridTextBox.cs
- UriSection.cs
- OleServicesContext.cs
- StatusStrip.cs
- RepeaterItem.cs
- AccessText.cs
- SettingsSavedEventArgs.cs
- DataGridCommandEventArgs.cs
- DataGridSortCommandEventArgs.cs
- StringStorage.cs
- UriExt.cs
- SessionState.cs
- DataTableNewRowEvent.cs
- RegionInfo.cs
- FastEncoder.cs
- CodeTypeDeclaration.cs
- ListViewUpdatedEventArgs.cs
- ItemCollection.cs
- ApplicationFileCodeDomTreeGenerator.cs
- DetailsViewRowCollection.cs
- AssemblyBuilder.cs
- ChangeBlockUndoRecord.cs
- LayoutTableCell.cs
- MasterPageCodeDomTreeGenerator.cs
- ToolboxItemFilterAttribute.cs
- x509store.cs
- MappableObjectManager.cs
- CssTextWriter.cs
- DbParameterCollectionHelper.cs
- CommandHelpers.cs
- dataprotectionpermission.cs
- ExpressionNormalizer.cs
- StylusPointDescription.cs
- VisualCollection.cs
- SymbolPair.cs
- StatusBarDrawItemEvent.cs
- Transform.cs
- DecoderBestFitFallback.cs
- EntityContainerRelationshipSetEnd.cs
- ParserExtension.cs
- InvokeWebServiceDesigner.cs
- ExpressionQuoter.cs
- XPathSelfQuery.cs
- ConstraintConverter.cs
- StringAnimationBase.cs
- ScriptingAuthenticationServiceSection.cs
- PackageRelationshipCollection.cs
- ErrorFormatter.cs
- WindowProviderWrapper.cs
- BindingList.cs
- TypeDescriptionProvider.cs
- RegistryConfigurationProvider.cs
- Compensation.cs
- SAPICategories.cs