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
- NetStream.cs
- EDesignUtil.cs
- EventRouteFactory.cs
- DiagnosticTrace.cs
- TypeConstant.cs
- Geometry.cs
- TextRunCache.cs
- TemplatedWizardStep.cs
- BrowserCapabilitiesCompiler.cs
- PerspectiveCamera.cs
- HtmlTableCell.cs
- SecurityHelper.cs
- SpecularMaterial.cs
- MatrixCamera.cs
- Serializer.cs
- WorkflowInstanceSuspendedRecord.cs
- ObjectQuery_EntitySqlExtensions.cs
- RelationshipWrapper.cs
- FontNamesConverter.cs
- BitmapVisualManager.cs
- HitTestWithPointDrawingContextWalker.cs
- VirtualPath.cs
- DesignerImageAdapter.cs
- ExtensionFile.cs
- TransformProviderWrapper.cs
- ResourceDictionary.cs
- BooleanConverter.cs
- HostingMessageProperty.cs
- SafeBuffer.cs
- PrimaryKeyTypeConverter.cs
- DisableDpiAwarenessAttribute.cs
- SafePointer.cs
- COM2ColorConverter.cs
- LinkedResource.cs
- RectangleHotSpot.cs
- ByteStack.cs
- MultiSelectRootGridEntry.cs
- LogSwitch.cs
- StorageModelBuildProvider.cs
- SynchronizedDispatch.cs
- CommandID.cs
- PseudoWebRequest.cs
- FlowNode.cs
- MatrixValueSerializer.cs
- PerfCounterSection.cs
- SplitContainer.cs
- ElementHostPropertyMap.cs
- VBCodeProvider.cs
- DataGridState.cs
- Rotation3DAnimationBase.cs
- IndexerNameAttribute.cs
- FocusManager.cs
- ApplyTemplatesAction.cs
- ComboBox.cs
- SignatureToken.cs
- DesignerAutoFormat.cs
- CustomValidator.cs
- PerfCounterSection.cs
- SpeechRecognitionEngine.cs
- ComponentEvent.cs
- ZipIOLocalFileDataDescriptor.cs
- DataBinder.cs
- RtType.cs
- SqlWebEventProvider.cs
- TransactionFlowProperty.cs
- QuestionEventArgs.cs
- CodeSnippetTypeMember.cs
- MachinePropertyVariants.cs
- FileReader.cs
- IdentitySection.cs
- TextOutput.cs
- TemplateField.cs
- WebPartMinimizeVerb.cs
- IgnoreFileBuildProvider.cs
- OracleString.cs
- XpsS0ValidatingLoader.cs
- LocationUpdates.cs
- ReflectionServiceProvider.cs
- BaseTemplateCodeDomTreeGenerator.cs
- SecurityRequiresReviewAttribute.cs
- ApplicationManager.cs
- securitycriticaldataformultiplegetandset.cs
- TaskCanceledException.cs
- Mapping.cs
- M3DUtil.cs
- DiscoveryDocumentSearchPattern.cs
- ContextStack.cs
- SynchronizedDispatch.cs
- XpsFilter.cs
- DelegateCompletionCallbackWrapper.cs
- SourceFileBuildProvider.cs
- ExpressionConverter.cs
- ArraySegment.cs
- WindowsFormsHelpers.cs
- CompileXomlTask.cs
- DrawingVisual.cs
- RawKeyboardInputReport.cs
- BinaryObjectReader.cs
- StorageMappingItemLoader.cs
- PathSegmentCollection.cs