Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / MS / Internal / Data / XmlNodeChangedEventManager.cs / 1305600 / 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) { if (source == null) throw new ArgumentNullException("source"); if (listener == null) throw new ArgumentNullException("listener"); CurrentManager.ProtectedAddListener(source, listener); } ////// Remove a listener to the given source's event. /// public static void RemoveListener(XmlDocument source, IWeakEventListener listener) { if (source == null) throw new ArgumentNullException("source"); if (listener == null) throw new ArgumentNullException("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
- TcpServerChannel.cs
- SchemaNamespaceManager.cs
- SystemResourceHost.cs
- ResponseStream.cs
- GradientStop.cs
- TemplateControlParser.cs
- AccessibleObject.cs
- SelectionUIService.cs
- UnitySerializationHolder.cs
- WizardStepBase.cs
- RegisteredScript.cs
- ValidatorCompatibilityHelper.cs
- WebPartChrome.cs
- PackagePartCollection.cs
- EdmTypeAttribute.cs
- DataColumnMapping.cs
- EntityProviderFactory.cs
- UnicodeEncoding.cs
- CustomAssemblyResolver.cs
- SiteOfOriginPart.cs
- DateTimePicker.cs
- ComEventsMethod.cs
- base64Transforms.cs
- XmlSerializerVersionAttribute.cs
- xml.cs
- MobileCategoryAttribute.cs
- UIEndRequest.cs
- Image.cs
- altserialization.cs
- PageAsyncTaskManager.cs
- RemoteCryptoTokenProvider.cs
- ToolStripDropDownItem.cs
- PropertyGridEditorPart.cs
- XmlSchemaObjectCollection.cs
- XmlSchemaSimpleContentRestriction.cs
- SystemMulticastIPAddressInformation.cs
- XmlSerializableServices.cs
- ErrorTableItemStyle.cs
- BasicHttpMessageSecurityElement.cs
- Soap12FormatExtensions.cs
- SectionXmlInfo.cs
- EdmSchemaAttribute.cs
- NonParentingControl.cs
- DBDataPermission.cs
- mda.cs
- WebPartConnectionsConnectVerb.cs
- Listbox.cs
- TextCompositionManager.cs
- TextLine.cs
- EncryptedKey.cs
- DialogResultConverter.cs
- OraclePermission.cs
- FrameworkObject.cs
- JsonWriter.cs
- CqlBlock.cs
- SelfIssuedAuthRSAPKCS1SignatureDeformatter.cs
- Camera.cs
- Size3DConverter.cs
- GenericXmlSecurityTokenAuthenticator.cs
- FigureParaClient.cs
- ExpressionBuilder.cs
- OleDbDataReader.cs
- PerformanceCounterCategory.cs
- TraceHandlerErrorFormatter.cs
- SessionStateContainer.cs
- Line.cs
- _HeaderInfoTable.cs
- Opcode.cs
- ProtocolsConfigurationEntry.cs
- CodeDelegateInvokeExpression.cs
- ValueQuery.cs
- ColumnMapCopier.cs
- AutoGeneratedFieldProperties.cs
- bidPrivateBase.cs
- FromRequest.cs
- SQLGuid.cs
- DeriveBytes.cs
- TransformDescriptor.cs
- ConvertBinder.cs
- ReadWriteControlDesigner.cs
- LabelLiteral.cs
- SecurityUtils.cs
- WindowsGraphics2.cs
- PartitionerStatic.cs
- StoryFragments.cs
- SystemIPGlobalProperties.cs
- PrePrepareMethodAttribute.cs
- UrlPath.cs
- MediaEntryAttribute.cs
- FormClosingEvent.cs
- ControlBuilder.cs
- ComAdminInterfaces.cs
- InstanceDataCollectionCollection.cs
- CssClassPropertyAttribute.cs
- StringInfo.cs
- CaseInsensitiveComparer.cs
- DeclarativeCatalogPart.cs
- DataObjectSettingDataEventArgs.cs
- NamedPipeActivation.cs
- ScriptingRoleServiceSection.cs