Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / 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. //---------------------------------------------------------------------------- // //// 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
- DbProviderFactory.cs
- ThumbButtonInfo.cs
- WebReferenceCollection.cs
- TextTreeDeleteContentUndoUnit.cs
- AdCreatedEventArgs.cs
- ClonableStack.cs
- ServiceNameCollection.cs
- UnsafeCollabNativeMethods.cs
- XmlObjectSerializerReadContextComplex.cs
- OLEDB_Enum.cs
- SafeThreadHandle.cs
- HttpHostedTransportConfiguration.cs
- SchemaObjectWriter.cs
- RuntimeConfigLKG.cs
- AdRotator.cs
- ToolStripGripRenderEventArgs.cs
- ToolStripDropDownClosingEventArgs.cs
- WindowsFormsLinkLabel.cs
- HttpStaticObjectsCollectionBase.cs
- BufferModeSettings.cs
- ByteRangeDownloader.cs
- Certificate.cs
- CompilerTypeWithParams.cs
- XmlDocumentType.cs
- LinkArea.cs
- IFlowDocumentViewer.cs
- WsatServiceCertificate.cs
- PropertyFilter.cs
- MimeMultiPart.cs
- EventItfInfo.cs
- ComponentConverter.cs
- GatewayDefinition.cs
- JoinElimination.cs
- BindingBase.cs
- SecurityContextKeyIdentifierClause.cs
- DataSourceProvider.cs
- DocumentOutline.cs
- ObjectViewQueryResultData.cs
- AttachmentCollection.cs
- Soap.cs
- COM2FontConverter.cs
- FilterableAttribute.cs
- StandardCommandToolStripMenuItem.cs
- SvcFileManager.cs
- PolicyChain.cs
- IMembershipProvider.cs
- Exceptions.cs
- BoundingRectTracker.cs
- CheckableControlBaseAdapter.cs
- UpdatePanelTrigger.cs
- METAHEADER.cs
- TableCellCollection.cs
- UrlMappingsSection.cs
- VirtualPathUtility.cs
- XslException.cs
- DistributedTransactionPermission.cs
- SafeProcessHandle.cs
- SharedStatics.cs
- BaseCodePageEncoding.cs
- InvokeBinder.cs
- ExtractorMetadata.cs
- EnumerableWrapperWeakToStrong.cs
- RecordManager.cs
- HtmlInputCheckBox.cs
- ObjectFullSpanRewriter.cs
- HierarchicalDataBoundControlAdapter.cs
- SelectionHighlightInfo.cs
- UdpSocketReceiveManager.cs
- XDRSchema.cs
- EntityWrapper.cs
- NativeMethods.cs
- SimplePropertyEntry.cs
- UIElement3DAutomationPeer.cs
- Enum.cs
- QueueSurrogate.cs
- DataGridViewRowPrePaintEventArgs.cs
- SamlAudienceRestrictionCondition.cs
- Configuration.cs
- MDIWindowDialog.cs
- PageBuildProvider.cs
- DetailsViewInsertedEventArgs.cs
- AnnotationDocumentPaginator.cs
- XmlSerializationReader.cs
- DataGridViewCell.cs
- URLIdentityPermission.cs
- BuildProviderAppliesToAttribute.cs
- _DigestClient.cs
- TextRunCache.cs
- NameSpaceExtractor.cs
- ImageDrawing.cs
- SrgsSemanticInterpretationTag.cs
- JpegBitmapDecoder.cs
- rsa.cs
- XamlHostingConfiguration.cs
- RegexRunner.cs
- DataContext.cs
- Stopwatch.cs
- TableLayoutPanelCellPosition.cs
- SqlTransaction.cs
- MouseWheelEventArgs.cs