Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Base / MS / Internal / InheritanceContextChangedEventManager.cs / 1 / InheritanceContextChangedEventManager.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: Manager for the InheritanceContextChanged event in the "weak event listener" // pattern. See WeakEventTable.cs for an overview. // //--------------------------------------------------------------------------- using System; using System.Diagnostics; using System.Windows; // WeakEventManager using MS.Internal.WindowsBase; // [FriendAccessAllowed] namespace MS.Internal { ////// Manager for the DependencyObject.InheritanceContextChanged event. /// [FriendAccessAllowed] internal class InheritanceContextChangedEventManager : WeakEventManager { #region Constructors // // Constructors // private InheritanceContextChangedEventManager() { } #endregion Constructors #region Public Methods // // Public Methods // ////// Add a listener to the given source's event. /// public static void AddListener(DependencyObject source, IWeakEventListener listener) { // Freezable.Freeze() relies on the assumption that a frozen Freezable // has no listeners. This is because Freeze() fails if the Freezable // has any Expressions on it, and only Expressions ever listen // to the InheritanceContextChanged event. Debug.Assert(listener is Expression); CurrentManager.ProtectedAddListener(source, listener); } ////// Remove a listener to the given source's event. /// public static void RemoveListener(DependencyObject 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) { DependencyObject typedSource = (DependencyObject)source; typedSource.InheritanceContextChanged += new EventHandler(OnInheritanceContextChanged); } ////// Stop listening to the given source for the event. /// protected override void StopListening(object source) { DependencyObject typedSource = (DependencyObject)source; typedSource.InheritanceContextChanged -= new EventHandler(OnInheritanceContextChanged); } #endregion Protected Methods #region Private Properties // // Private Properties // // get the event manager for the current thread private static InheritanceContextChangedEventManager CurrentManager { get { Type managerType = typeof(InheritanceContextChangedEventManager); InheritanceContextChangedEventManager manager = (InheritanceContextChangedEventManager)GetCurrentManager(managerType); // at first use, create and register a new manager if (manager == null) { manager = new InheritanceContextChangedEventManager(); SetCurrentManager(managerType, manager); } return manager; } } #endregion Private Properties #region Private Methods // // Private Methods // // event handler for InheritanceContextChanged event private void OnInheritanceContextChanged(object sender, EventArgs 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 InheritanceContextChanged event in the "weak event listener" // pattern. See WeakEventTable.cs for an overview. // //--------------------------------------------------------------------------- using System; using System.Diagnostics; using System.Windows; // WeakEventManager using MS.Internal.WindowsBase; // [FriendAccessAllowed] namespace MS.Internal { ////// Manager for the DependencyObject.InheritanceContextChanged event. /// [FriendAccessAllowed] internal class InheritanceContextChangedEventManager : WeakEventManager { #region Constructors // // Constructors // private InheritanceContextChangedEventManager() { } #endregion Constructors #region Public Methods // // Public Methods // ////// Add a listener to the given source's event. /// public static void AddListener(DependencyObject source, IWeakEventListener listener) { // Freezable.Freeze() relies on the assumption that a frozen Freezable // has no listeners. This is because Freeze() fails if the Freezable // has any Expressions on it, and only Expressions ever listen // to the InheritanceContextChanged event. Debug.Assert(listener is Expression); CurrentManager.ProtectedAddListener(source, listener); } ////// Remove a listener to the given source's event. /// public static void RemoveListener(DependencyObject 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) { DependencyObject typedSource = (DependencyObject)source; typedSource.InheritanceContextChanged += new EventHandler(OnInheritanceContextChanged); } ////// Stop listening to the given source for the event. /// protected override void StopListening(object source) { DependencyObject typedSource = (DependencyObject)source; typedSource.InheritanceContextChanged -= new EventHandler(OnInheritanceContextChanged); } #endregion Protected Methods #region Private Properties // // Private Properties // // get the event manager for the current thread private static InheritanceContextChangedEventManager CurrentManager { get { Type managerType = typeof(InheritanceContextChangedEventManager); InheritanceContextChangedEventManager manager = (InheritanceContextChangedEventManager)GetCurrentManager(managerType); // at first use, create and register a new manager if (manager == null) { manager = new InheritanceContextChangedEventManager(); SetCurrentManager(managerType, manager); } return manager; } } #endregion Private Properties #region Private Methods // // Private Methods // // event handler for InheritanceContextChanged event private void OnInheritanceContextChanged(object sender, EventArgs 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
- PageRanges.cs
- base64Transforms.cs
- OleDbReferenceCollection.cs
- DataGridViewCellCancelEventArgs.cs
- ExpressionPrinter.cs
- EntityClientCacheKey.cs
- PreviewPrintController.cs
- TypeSystem.cs
- DataReceivedEventArgs.cs
- CellConstant.cs
- RuntimeConfigLKG.cs
- ResourceManager.cs
- CustomAssemblyResolver.cs
- PrintSystemException.cs
- _LocalDataStoreMgr.cs
- FacetChecker.cs
- MenuAutoFormat.cs
- ValidatedControlConverter.cs
- IOException.cs
- BitConverter.cs
- DomainUpDown.cs
- CryptoApi.cs
- DataGridViewSortCompareEventArgs.cs
- ListViewInsertedEventArgs.cs
- CodePageEncoding.cs
- AnnouncementEndpointElement.cs
- FileDetails.cs
- WebAdminConfigurationHelper.cs
- SqlWriter.cs
- SoapEnumAttribute.cs
- HttpHeaderCollection.cs
- TabletDeviceInfo.cs
- CodeDOMUtility.cs
- CodeTypeReferenceExpression.cs
- DataGridLinkButton.cs
- DurationConverter.cs
- CommandDevice.cs
- QilXmlReader.cs
- SinglePageViewer.cs
- XmlNode.cs
- DataSvcMapFile.cs
- ThemeInfoAttribute.cs
- PEFileReader.cs
- SqlDataRecord.cs
- QilXmlWriter.cs
- XmlComplianceUtil.cs
- Literal.cs
- BufferedStream.cs
- WebPartDisplayModeCancelEventArgs.cs
- RadioButtonDesigner.cs
- DataServiceStreamProviderWrapper.cs
- WebPartEditorApplyVerb.cs
- TemplateBamlTreeBuilder.cs
- UnionExpr.cs
- Executor.cs
- oledbconnectionstring.cs
- UserControlCodeDomTreeGenerator.cs
- XmlEntityReference.cs
- CqlBlock.cs
- GridViewDesigner.cs
- ScriptReference.cs
- Knowncolors.cs
- AutoSizeComboBox.cs
- RemoteWebConfigurationHost.cs
- CodeMethodInvokeExpression.cs
- LinqToSqlWrapper.cs
- MethodImplAttribute.cs
- FlowThrottle.cs
- InvalidCommandTreeException.cs
- CacheVirtualItemsEvent.cs
- HtmlInputText.cs
- QueryContinueDragEvent.cs
- SingleTagSectionHandler.cs
- ToolStripGrip.cs
- FormViewActionList.cs
- FunctionImportElement.cs
- StringPropertyBuilder.cs
- MILUtilities.cs
- WorkflowViewService.cs
- SmtpAuthenticationManager.cs
- DataViewSetting.cs
- ImageSourceValueSerializer.cs
- CodeCatchClause.cs
- EditingMode.cs
- Relationship.cs
- CustomAttributeFormatException.cs
- XmlWrappingReader.cs
- COM2Enum.cs
- UIElement.cs
- ByteAnimation.cs
- Transform.cs
- DecoderExceptionFallback.cs
- SQLMoneyStorage.cs
- RowUpdatingEventArgs.cs
- GcHandle.cs
- XmlILIndex.cs
- InvalidEnumArgumentException.cs
- ProcessHostServerConfig.cs
- TextFormatterHost.cs
- TextProviderWrapper.cs