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
- IsolationInterop.cs
- OleDbCommandBuilder.cs
- NewItemsContextMenuStrip.cs
- ObjectQueryProvider.cs
- EdmTypeAttribute.cs
- WebControl.cs
- WebBrowserEvent.cs
- DetailsViewPagerRow.cs
- GeometryGroup.cs
- SqlCacheDependencyDatabaseCollection.cs
- KeyConstraint.cs
- ClickablePoint.cs
- NavigateEvent.cs
- CircleHotSpot.cs
- UnitySerializationHolder.cs
- BitmapEffectDrawingContextState.cs
- Queue.cs
- ConfigsHelper.cs
- TaskResultSetter.cs
- DashStyle.cs
- CheckBox.cs
- GregorianCalendarHelper.cs
- CodeTypeParameterCollection.cs
- MatrixTransform3D.cs
- PageThemeCodeDomTreeGenerator.cs
- TaiwanCalendar.cs
- TransformerInfo.cs
- ButtonField.cs
- ListViewItemMouseHoverEvent.cs
- ElementNotAvailableException.cs
- ToolStripLocationCancelEventArgs.cs
- TextPenaltyModule.cs
- DetailsViewInsertedEventArgs.cs
- XmlDataImplementation.cs
- ToolboxBitmapAttribute.cs
- ElementMarkupObject.cs
- AmbientValueAttribute.cs
- _LoggingObject.cs
- MarshalByValueComponent.cs
- SafeEventHandle.cs
- ErrorHandlerFaultInfo.cs
- SqlBulkCopyColumnMappingCollection.cs
- WindowsImpersonationContext.cs
- XmlDocumentFragment.cs
- XPathNodeInfoAtom.cs
- ReadOnlyDictionary.cs
- RenderDataDrawingContext.cs
- MissingManifestResourceException.cs
- PropertyItemInternal.cs
- ResourceSet.cs
- DoubleConverter.cs
- SqlReferenceCollection.cs
- Hashtable.cs
- ParameterReplacerVisitor.cs
- DesignerAutoFormat.cs
- NodeFunctions.cs
- Html32TextWriter.cs
- NameValueFileSectionHandler.cs
- TextViewSelectionProcessor.cs
- DataTableMapping.cs
- ScopedKnownTypes.cs
- DataGridViewLinkCell.cs
- IIS7UserPrincipal.cs
- TraceSwitch.cs
- ValueQuery.cs
- ToggleProviderWrapper.cs
- SqlWebEventProvider.cs
- TextEditorTyping.cs
- IsolatedStorageException.cs
- HttpTransportElement.cs
- HttpInputStream.cs
- HtmlUtf8RawTextWriter.cs
- DrawToolTipEventArgs.cs
- RepeatButton.cs
- ConstructorNeedsTagAttribute.cs
- SimpleLine.cs
- NativeWrapper.cs
- XmlRawWriterWrapper.cs
- EventInfo.cs
- DrawingContextWalker.cs
- DiscoveryOperationContext.cs
- PaintEvent.cs
- _AuthenticationState.cs
- WebColorConverter.cs
- DataPagerFieldCollection.cs
- KeyboardEventArgs.cs
- TdsParserStateObject.cs
- GeometryConverter.cs
- TableCellCollection.cs
- AdapterUtil.cs
- TableChangeProcessor.cs
- UserMapPath.cs
- SystemNetworkInterface.cs
- RadioButton.cs
- ObfuscateAssemblyAttribute.cs
- CodeGenerator.cs
- ProviderMetadataCachedInformation.cs
- DynamicMethod.cs
- TraceXPathNavigator.cs
- OutputCacheSettingsSection.cs