Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- TypedTableBaseExtensions.cs
- DockAndAnchorLayout.cs
- PermissionListSet.cs
- NotFiniteNumberException.cs
- BypassElement.cs
- SqlConnectionString.cs
- DataGridTextBoxColumn.cs
- OracleSqlParser.cs
- DescendantOverDescendantQuery.cs
- ActivityCodeDomSerializer.cs
- BindingExpressionBase.cs
- CursorInteropHelper.cs
- CodeFieldReferenceExpression.cs
- DirectoryObjectSecurity.cs
- StateDesignerConnector.cs
- XmlQueryContext.cs
- XamlUtilities.cs
- WebPartEditorApplyVerb.cs
- Int32RectConverter.cs
- _CacheStreams.cs
- ImageListImage.cs
- RelationshipWrapper.cs
- PathFigureCollectionConverter.cs
- TrustManager.cs
- AtlasWeb.Designer.cs
- SqlDataSourceCache.cs
- VerbConverter.cs
- TextMessageEncoder.cs
- OleDbConnectionFactory.cs
- TextPenaltyModule.cs
- ReceiveActivity.cs
- shaper.cs
- IISUnsafeMethods.cs
- CodeAttributeDeclarationCollection.cs
- Resources.Designer.cs
- assertwrapper.cs
- X509Extension.cs
- AdornedElementPlaceholder.cs
- BlurEffect.cs
- WebPartVerbCollection.cs
- DataServices.cs
- LazyTextWriterCreator.cs
- AutoScrollHelper.cs
- PolicyValidationException.cs
- GrammarBuilder.cs
- Point3DCollection.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- AttributeEmitter.cs
- DataColumnPropertyDescriptor.cs
- ConnectionManagementElementCollection.cs
- TypeConverterHelper.cs
- X509PeerCertificateElement.cs
- Hex.cs
- TextBlock.cs
- ContextMenuStrip.cs
- Claim.cs
- PageCanvasSize.cs
- SqlSupersetValidator.cs
- DocumentViewerBase.cs
- RangeExpression.cs
- SecurityUtils.cs
- MSHTMLHostUtil.cs
- BamlRecords.cs
- ObjectDataSourceEventArgs.cs
- FieldToken.cs
- TableRowsCollectionEditor.cs
- DifferencingCollection.cs
- XmlWriter.cs
- LiteralTextParser.cs
- CompilerState.cs
- CharKeyFrameCollection.cs
- XmlNodeChangedEventManager.cs
- WebPartCloseVerb.cs
- SqlDuplicator.cs
- Property.cs
- DLinqAssociationProvider.cs
- ValueTypeFixupInfo.cs
- GiveFeedbackEventArgs.cs
- StatusBarDrawItemEvent.cs
- EventLogger.cs
- PerformanceCounterPermissionEntry.cs
- EDesignUtil.cs
- CatalogZone.cs
- CapabilitiesRule.cs
- BinaryReader.cs
- BackgroundFormatInfo.cs
- JapaneseLunisolarCalendar.cs
- LineBreak.cs
- DateBoldEvent.cs
- MetadataItemEmitter.cs
- ValueTypeIndexerReference.cs
- HtmlTableRow.cs
- WebPartTracker.cs
- FieldBuilder.cs
- CustomCategoryAttribute.cs
- RenderCapability.cs
- MenuItem.cs
- DataTableReader.cs
- PropertyKey.cs
- HyperLinkColumn.cs