Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- ColorAnimationBase.cs
- FlowLayoutPanel.cs
- DataSourceSelectArguments.cs
- ListViewItem.cs
- IDQuery.cs
- WebPartMinimizeVerb.cs
- SlotInfo.cs
- FileIOPermission.cs
- TableLayoutPanelCellPosition.cs
- FixedDocumentPaginator.cs
- SeekableMessageNavigator.cs
- TraceListener.cs
- Thickness.cs
- HashSetDebugView.cs
- FrameworkElementFactory.cs
- Triplet.cs
- LinkDesigner.cs
- ArgumentValidation.cs
- ThrowOnMultipleAssignment.cs
- HtmlProps.cs
- DBDataPermission.cs
- OlePropertyStructs.cs
- IProvider.cs
- PersonalizablePropertyEntry.cs
- ProcessHost.cs
- SqlDataSourceView.cs
- DesignerSelectionListAdapter.cs
- SoapUnknownHeader.cs
- RequestCache.cs
- SystemException.cs
- ClientBase.cs
- DescendantQuery.cs
- SwitchLevelAttribute.cs
- DetailsViewModeEventArgs.cs
- MultilineStringConverter.cs
- LinearGradientBrush.cs
- OdbcException.cs
- DocumentOrderQuery.cs
- TextRange.cs
- ConsumerConnectionPointCollection.cs
- ToolBarButtonClickEvent.cs
- Journaling.cs
- XmlCharacterData.cs
- TabControlAutomationPeer.cs
- GridSplitter.cs
- DataSourceProvider.cs
- ReferencedType.cs
- hwndwrapper.cs
- RemotingAttributes.cs
- FieldAccessException.cs
- CapabilitiesState.cs
- WebPartActionVerb.cs
- EntityDataSourceUtil.cs
- TypeSystemProvider.cs
- InstallerTypeAttribute.cs
- ProfileGroupSettingsCollection.cs
- ApplicationActivator.cs
- ButtonFieldBase.cs
- keycontainerpermission.cs
- StrongNameUtility.cs
- SchemaMapping.cs
- StringSorter.cs
- ByValueEqualityComparer.cs
- Brush.cs
- ResourceManagerWrapper.cs
- DataViewListener.cs
- JsonCollectionDataContract.cs
- PersistenceProviderBehavior.cs
- SpellCheck.cs
- XmlRootAttribute.cs
- XamlWriter.cs
- Vector3D.cs
- EntityCommandCompilationException.cs
- EnumConverter.cs
- XmlBaseWriter.cs
- ManualWorkflowSchedulerService.cs
- TimeSpanHelper.cs
- BindUriHelper.cs
- CompilerScope.Storage.cs
- TableLayoutPanel.cs
- TargetException.cs
- ArgumentValidation.cs
- WhitespaceRuleReader.cs
- MarkerProperties.cs
- DBProviderConfigurationHandler.cs
- Figure.cs
- SystemThemeKey.cs
- TypeGeneratedEventArgs.cs
- SafeLibraryHandle.cs
- ThreadAttributes.cs
- LabelExpression.cs
- SplitterEvent.cs
- GlobalDataBindingHandler.cs
- ComponentEditorForm.cs
- WindowProviderWrapper.cs
- DataGridItemCollection.cs
- SqlClientWrapperSmiStream.cs
- OdbcReferenceCollection.cs
- RawStylusInput.cs
- GridViewCancelEditEventArgs.cs