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
- DummyDataSource.cs
- TransactionManagerProxy.cs
- ComAdminWrapper.cs
- LayoutExceptionEventArgs.cs
- ConstraintEnumerator.cs
- GeometryHitTestResult.cs
- TextBoxLine.cs
- CalendarModeChangedEventArgs.cs
- BigIntegerStorage.cs
- XmlTextReader.cs
- SessionIDManager.cs
- PlatformCulture.cs
- QueryOptionExpression.cs
- SecurityCriticalDataForSet.cs
- LinqDataSource.cs
- StrokeNodeEnumerator.cs
- PropertyEntry.cs
- XNodeNavigator.cs
- CompletionBookmark.cs
- Attributes.cs
- XmlKeywords.cs
- ServiceObjectContainer.cs
- ErrorFormatterPage.cs
- FormViewModeEventArgs.cs
- returneventsaver.cs
- DriveInfo.cs
- Zone.cs
- RowUpdatedEventArgs.cs
- OdbcStatementHandle.cs
- EncoderParameter.cs
- TextParagraphView.cs
- SessionPageStatePersister.cs
- StreamWriter.cs
- DataPagerCommandEventArgs.cs
- RayMeshGeometry3DHitTestResult.cs
- WinFormsSecurity.cs
- PropertyTabChangedEvent.cs
- contentDescriptor.cs
- TextElementEditingBehaviorAttribute.cs
- NetStream.cs
- SelectedDatesCollection.cs
- SequentialOutput.cs
- DataGridViewComponentPropertyGridSite.cs
- ListBoxItem.cs
- WebPartHelpVerb.cs
- WindowsGraphicsCacheManager.cs
- Journaling.cs
- DataServiceProcessingPipelineEventArgs.cs
- BaseCollection.cs
- Compilation.cs
- ToolStripPanelCell.cs
- AuthenticationModulesSection.cs
- FixedDocumentPaginator.cs
- PointConverter.cs
- GeometryModel3D.cs
- HttpWebResponse.cs
- HotSpotCollectionEditor.cs
- GlyphRunDrawing.cs
- XmlSchemaInfo.cs
- HttpWebRequest.cs
- WorkflowRuntime.cs
- DataRowView.cs
- XmlSchemaChoice.cs
- DataPagerCommandEventArgs.cs
- TypeHelper.cs
- ObjectDataSourceFilteringEventArgs.cs
- Image.cs
- CodeNamespaceCollection.cs
- DebugView.cs
- PtsHost.cs
- SerializationEventsCache.cs
- CheckedPointers.cs
- SiteMapNode.cs
- Compiler.cs
- WSHttpBindingCollectionElement.cs
- DeclaredTypeElementCollection.cs
- TableLayoutPanelDesigner.cs
- ThreadPool.cs
- DatasetMethodGenerator.cs
- AxHost.cs
- IndexedGlyphRun.cs
- BitmapEffectGroup.cs
- Int32AnimationUsingKeyFrames.cs
- ToolStripScrollButton.cs
- DataGridViewLinkCell.cs
- PrintPreviewGraphics.cs
- DataGridViewCellStyleContentChangedEventArgs.cs
- SecurityKeyIdentifier.cs
- RtType.cs
- DataControlImageButton.cs
- XmlTextReaderImpl.cs
- RemoteWebConfigurationHost.cs
- LoginName.cs
- UnsafeNativeMethodsCLR.cs
- WebUtility.cs
- TextBounds.cs
- SchemaNames.cs
- AsyncOperation.cs
- AdRotator.cs
- AdPostCacheSubstitution.cs