Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- AtomParser.cs
- DataGridColumnFloatingHeader.cs
- ConsoleKeyInfo.cs
- CorePropertiesFilter.cs
- RenamedEventArgs.cs
- CookieProtection.cs
- SystemGatewayIPAddressInformation.cs
- DispatchWrapper.cs
- BidOverLoads.cs
- NullableBoolConverter.cs
- BaseDataList.cs
- RegexBoyerMoore.cs
- SapiGrammar.cs
- State.cs
- MDIWindowDialog.cs
- ILGen.cs
- LoginView.cs
- QuerySelectOp.cs
- CurrentTimeZone.cs
- Parameter.cs
- FontSourceCollection.cs
- DataViewSettingCollection.cs
- CodeDomComponentSerializationService.cs
- CharUnicodeInfo.cs
- ToggleButton.cs
- XPathDocumentIterator.cs
- DefinitionBase.cs
- SimpleExpression.cs
- UniqueContractNameValidationBehavior.cs
- Splitter.cs
- EdmValidator.cs
- WindowsIdentity.cs
- WindowInteropHelper.cs
- PixelFormats.cs
- PromptBuilder.cs
- WebRequestModulesSection.cs
- RestClientProxyHandler.cs
- FormViewDeleteEventArgs.cs
- ByteAnimationUsingKeyFrames.cs
- PointAnimationClockResource.cs
- CodeExporter.cs
- SourceFileBuildProvider.cs
- AtomMaterializer.cs
- OperatingSystem.cs
- DummyDataSource.cs
- ClientWindowsAuthenticationMembershipProvider.cs
- BuildManagerHost.cs
- PipelineModuleStepContainer.cs
- QuaternionRotation3D.cs
- RegexInterpreter.cs
- ViewCellSlot.cs
- ParagraphResult.cs
- Documentation.cs
- BitmapFrameEncode.cs
- wgx_exports.cs
- CategoryNameCollection.cs
- odbcmetadatafactory.cs
- WebRequest.cs
- DiagnosticsConfigurationHandler.cs
- FilteredXmlReader.cs
- NameNode.cs
- DataGridTable.cs
- InkCanvasFeedbackAdorner.cs
- Keyboard.cs
- PopupControlService.cs
- CodeMemberProperty.cs
- BadImageFormatException.cs
- X509CertificateCollection.cs
- WebPartPersonalization.cs
- SqlFunctionAttribute.cs
- AttributeCollection.cs
- AnnotationResourceChangedEventArgs.cs
- RepeatButtonAutomationPeer.cs
- DataGridDetailsPresenterAutomationPeer.cs
- IisTraceListener.cs
- ResourcesChangeInfo.cs
- ConfigXmlCDataSection.cs
- RegistrySecurity.cs
- DecimalConstantAttribute.cs
- NonPrimarySelectionGlyph.cs
- DetailsViewUpdatedEventArgs.cs
- SoapElementAttribute.cs
- FixedTextView.cs
- FileDialog.cs
- PrintingPermissionAttribute.cs
- Propagator.JoinPropagator.JoinPredicateVisitor.cs
- RangeBase.cs
- RoleManagerModule.cs
- DesignerLinkAdapter.cs
- SafeSystemMetrics.cs
- CrossAppDomainChannel.cs
- MessageBox.cs
- TypeHelper.cs
- CollectionViewSource.cs
- ExpressionConverter.cs
- ProtocolsConfigurationHandler.cs
- ColorMap.cs
- AudioFormatConverter.cs
- ScriptResourceHandler.cs
- FocusTracker.cs