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
- SystemIcmpV4Statistics.cs
- DataExchangeServiceBinder.cs
- TextSerializer.cs
- SoapConverter.cs
- RotateTransform3D.cs
- TreeNodeEventArgs.cs
- TableFieldsEditor.cs
- AssociatedControlConverter.cs
- ColumnCollection.cs
- XPathDocumentNavigator.cs
- GeneralTransform3DGroup.cs
- ILGenerator.cs
- LoginCancelEventArgs.cs
- RegexTypeEditor.cs
- WorkflowElementDialog.cs
- XamlSerializationHelper.cs
- BitmapImage.cs
- CellNormalizer.cs
- LinkedResource.cs
- GPPOINTF.cs
- SEHException.cs
- TemplateInstanceAttribute.cs
- TriggerBase.cs
- TextTrailingWordEllipsis.cs
- ElementFactory.cs
- XmlCollation.cs
- ProfessionalColors.cs
- DesignerInterfaces.cs
- ModuleBuilder.cs
- SecurityUtils.cs
- NonClientArea.cs
- StylusOverProperty.cs
- KeyboardEventArgs.cs
- PtsHelper.cs
- CannotUnloadAppDomainException.cs
- ProcessModuleCollection.cs
- XmlIgnoreAttribute.cs
- ipaddressinformationcollection.cs
- ConsoleTraceListener.cs
- CombinedGeometry.cs
- ImageResources.Designer.cs
- NamedObject.cs
- SeverityFilter.cs
- DataObject.cs
- XmlConvert.cs
- WSSecureConversationDec2005.cs
- UrlPath.cs
- TraceXPathNavigator.cs
- BitStack.cs
- WinEventQueueItem.cs
- List.cs
- EntityException.cs
- XhtmlConformanceSection.cs
- StylusButtonCollection.cs
- GestureRecognizer.cs
- SvcMapFileSerializer.cs
- RuntimeArgumentHandle.cs
- SecurityUtils.cs
- SynchronizationFilter.cs
- XmlObjectSerializerWriteContext.cs
- NamespaceInfo.cs
- IUnknownConstantAttribute.cs
- ColorTransform.cs
- EntityDataSourceDataSelection.cs
- Queue.cs
- WebPartTracker.cs
- ImageConverter.cs
- ConfigUtil.cs
- ServiceHost.cs
- DecimalFormatter.cs
- Assert.cs
- WindowsComboBox.cs
- PopOutPanel.cs
- AdornerPresentationContext.cs
- NotFiniteNumberException.cs
- TypeProvider.cs
- ValueProviderWrapper.cs
- XmlWriterSettings.cs
- XmlDictionaryString.cs
- UserControl.cs
- DataGridTable.cs
- CngAlgorithmGroup.cs
- HandledEventArgs.cs
- ParameterElementCollection.cs
- PathParser.cs
- ViewLoader.cs
- SymbolUsageManager.cs
- DoubleLink.cs
- PageClientProxyGenerator.cs
- Task.cs
- ParameterCollection.cs
- SapiRecoContext.cs
- ArraySortHelper.cs
- XmlByteStreamReader.cs
- TlsnegoTokenProvider.cs
- PageThemeBuildProvider.cs
- xdrvalidator.cs
- FormsAuthenticationTicket.cs
- HttpChannelFactory.cs
- WindowsToolbar.cs