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
- PointCollectionValueSerializer.cs
- FixedSOMTable.cs
- TransformerTypeCollection.cs
- LogicalTreeHelper.cs
- SmtpClient.cs
- TextOnlyOutput.cs
- InternalMappingException.cs
- SolidBrush.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- GridViewEditEventArgs.cs
- KeyValuePair.cs
- ReflectionPermission.cs
- ErrorReporting.cs
- EdmComplexTypeAttribute.cs
- ToolZone.cs
- SqlDataSourceSummaryPanel.cs
- XmlValidatingReader.cs
- ConfigurationHelpers.cs
- ItemCheckEvent.cs
- WebBrowserPermission.cs
- DelegateArgument.cs
- SupportingTokenChannel.cs
- AuthenticationService.cs
- StateManagedCollection.cs
- HostingEnvironmentException.cs
- DiffuseMaterial.cs
- keycontainerpermission.cs
- XmlArrayItemAttribute.cs
- AmbientProperties.cs
- HtmlTernaryTree.cs
- DocumentStatusResources.cs
- HtmlValidationSummaryAdapter.cs
- DbConnectionFactory.cs
- SchemaObjectWriter.cs
- TextElementEnumerator.cs
- PropertyMapper.cs
- SmiTypedGetterSetter.cs
- XmlLoader.cs
- ZipIOBlockManager.cs
- HtmlTableRowCollection.cs
- LogEntryHeaderSerializer.cs
- WebZoneDesigner.cs
- AtomServiceDocumentSerializer.cs
- XmlProcessingInstruction.cs
- DocumentViewerConstants.cs
- XmlArrayItemAttribute.cs
- CheckPair.cs
- InlineObject.cs
- WebPartMovingEventArgs.cs
- TraceSource.cs
- AttributeEmitter.cs
- cookiecollection.cs
- WebRequest.cs
- FullTrustAssemblyCollection.cs
- WmlValidatorAdapter.cs
- AsmxEndpointPickerExtension.cs
- Tool.cs
- SQLCharsStorage.cs
- TemplatedMailWebEventProvider.cs
- RegistryKey.cs
- PageVisual.cs
- QuaternionValueSerializer.cs
- BaseCodePageEncoding.cs
- SimpleApplicationHost.cs
- Typography.cs
- TextEvent.cs
- CultureSpecificStringDictionary.cs
- AnnotationAuthorChangedEventArgs.cs
- CacheDependency.cs
- GlobalItem.cs
- ZipIOLocalFileHeader.cs
- MappingMetadataHelper.cs
- documentsequencetextcontainer.cs
- Keywords.cs
- ToolStripSettings.cs
- IntegerCollectionEditor.cs
- XmlDataSourceView.cs
- ExpressionVisitor.cs
- JpegBitmapEncoder.cs
- ErrorsHelper.cs
- ConnectorMovedEventArgs.cs
- OpCodes.cs
- ServiceReference.cs
- EventHandlersDesigner.cs
- TemplateManager.cs
- JournalNavigationScope.cs
- HideDisabledControlAdapter.cs
- AnyAllSearchOperator.cs
- WebPartUtil.cs
- unsafeIndexingFilterStream.cs
- WindowsPen.cs
- SafeSystemMetrics.cs
- CanonicalFormWriter.cs
- SQLResource.cs
- DateTimeStorage.cs
- TextBox.cs
- StringWriter.cs
- URI.cs
- FontConverter.cs
- SkewTransform.cs