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
- NetNamedPipeBindingElement.cs
- SpnegoTokenProvider.cs
- PointIndependentAnimationStorage.cs
- CollectionType.cs
- CoreSwitches.cs
- AtomParser.cs
- WeakReadOnlyCollection.cs
- TextEndOfParagraph.cs
- EntityKey.cs
- Exception.cs
- Attribute.cs
- AnimationException.cs
- SHA384.cs
- dsa.cs
- Effect.cs
- CapabilitiesRule.cs
- Base64Decoder.cs
- EdmSchemaError.cs
- RowTypeElement.cs
- Rotation3DAnimation.cs
- SqlConnectionStringBuilder.cs
- EnumConverter.cs
- SplitContainer.cs
- EmbeddedObject.cs
- ApplicationContext.cs
- ComboBoxAutomationPeer.cs
- CapabilitiesPattern.cs
- TreeNodeBinding.cs
- XamlSerializerUtil.cs
- ContentValidator.cs
- _SSPIWrapper.cs
- DateTimeFormatInfo.cs
- OptionalColumn.cs
- PathSegment.cs
- XmlArrayItemAttributes.cs
- SizeLimitedCache.cs
- ParentQuery.cs
- DataControlFieldCollection.cs
- DefaultValueTypeConverter.cs
- AnyAllSearchOperator.cs
- XamlPointCollectionSerializer.cs
- SpanIndex.cs
- CompoundFileStorageReference.cs
- WorkflowInstanceExtensionManager.cs
- EntityTemplateFactory.cs
- TemplateField.cs
- SQLBinary.cs
- TextEditorMouse.cs
- categoryentry.cs
- RenamedEventArgs.cs
- ConfigXmlSignificantWhitespace.cs
- AnnotationResourceCollection.cs
- UnsafeNativeMethods.cs
- ModelFunction.cs
- UserPrincipalNameElement.cs
- HttpChannelHelper.cs
- Hashtable.cs
- XPathNodeList.cs
- AttachedAnnotationChangedEventArgs.cs
- ConfigXmlSignificantWhitespace.cs
- ToolStripEditorManager.cs
- XmlArrayItemAttributes.cs
- TextControl.cs
- EntityDataSourceUtil.cs
- ItemContainerProviderWrapper.cs
- TraceLog.cs
- XmlHierarchicalDataSourceView.cs
- ColorMatrix.cs
- URLIdentityPermission.cs
- SmiEventSink_DeferedProcessing.cs
- CodeTypeReference.cs
- CustomLineCap.cs
- ArraySet.cs
- DuplicateContext.cs
- ActivityBuilderHelper.cs
- ResolveNameEventArgs.cs
- InvalidateEvent.cs
- Matrix.cs
- ArgumentsParser.cs
- WindowsGraphicsWrapper.cs
- PassportPrincipal.cs
- TextElementAutomationPeer.cs
- TableCell.cs
- ConfigurationSchemaErrors.cs
- UserPersonalizationStateInfo.cs
- ElementMarkupObject.cs
- TableLayoutPanel.cs
- DataGridCellsPanel.cs
- ImageButton.cs
- BitmapSizeOptions.cs
- XsdBuildProvider.cs
- JournalEntryListConverter.cs
- Highlights.cs
- BindingNavigatorDesigner.cs
- SimpleRecyclingCache.cs
- ArgumentException.cs
- GlyphInfoList.cs
- GeometryModel3D.cs
- ClassDataContract.cs
- RadioButtonStandardAdapter.cs