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
- selecteditemcollection.cs
- TypeToken.cs
- CompiledXpathExpr.cs
- CharEnumerator.cs
- ExpressionBuilderCollection.cs
- DocumentViewer.cs
- JsonSerializer.cs
- _ChunkParse.cs
- StatusBarDesigner.cs
- CodeTypeReference.cs
- GridViewRow.cs
- RowUpdatedEventArgs.cs
- XamlVector3DCollectionSerializer.cs
- XmlNamespaceManager.cs
- TcpHostedTransportConfiguration.cs
- SizeChangedEventArgs.cs
- HttpRequestCacheValidator.cs
- Matrix3DValueSerializer.cs
- ObjectViewFactory.cs
- ArraySegment.cs
- Error.cs
- Route.cs
- XmlArrayItemAttributes.cs
- WorkflowWebHostingModule.cs
- Nodes.cs
- HwndSourceParameters.cs
- safemediahandle.cs
- ParserContext.cs
- DbDataSourceEnumerator.cs
- SelectorItemAutomationPeer.cs
- QuadraticBezierSegment.cs
- TempEnvironment.cs
- TextSimpleMarkerProperties.cs
- HwndSubclass.cs
- VariantWrapper.cs
- ConfigXmlText.cs
- MobileResource.cs
- QueryInterceptorAttribute.cs
- SchemaImporterExtensionElement.cs
- DelegateTypeInfo.cs
- ADMembershipUser.cs
- ColumnResult.cs
- ImageListStreamer.cs
- ToolStripRendererSwitcher.cs
- Axis.cs
- OutputCacheSection.cs
- DataControlImageButton.cs
- SafeNativeMethods.cs
- WebPartMenuStyle.cs
- SafeUserTokenHandle.cs
- MarkupExtensionReturnTypeAttribute.cs
- DisposableCollectionWrapper.cs
- HttpFileCollection.cs
- AdPostCacheSubstitution.cs
- DataGridViewSelectedColumnCollection.cs
- CompilerTypeWithParams.cs
- TableCellCollection.cs
- RequestBringIntoViewEventArgs.cs
- InheritablePropertyChangeInfo.cs
- WrapperEqualityComparer.cs
- SqlUserDefinedAggregateAttribute.cs
- ImageClickEventArgs.cs
- Exception.cs
- VerticalAlignConverter.cs
- SwitchLevelAttribute.cs
- ExpressionBuilderCollection.cs
- DesignerCatalogPartChrome.cs
- CatalogPart.cs
- sitestring.cs
- XmlSigningNodeWriter.cs
- CaseExpr.cs
- SafeNativeMemoryHandle.cs
- ConstructorExpr.cs
- GridPattern.cs
- Common.cs
- CustomSignedXml.cs
- TextEffect.cs
- WebPartConnectVerb.cs
- ComboBoxAutomationPeer.cs
- DispatcherBuilder.cs
- SwitchExpression.cs
- IgnoreDeviceFilterElementCollection.cs
- RuntimeHandles.cs
- VerifyHashRequest.cs
- ChannelDispatcherBase.cs
- SqlNotificationRequest.cs
- LocalizationParserHooks.cs
- SmtpNegotiateAuthenticationModule.cs
- DeferredBinaryDeserializerExtension.cs
- ProviderSettingsCollection.cs
- RegexNode.cs
- Journal.cs
- EmptyWithCancelationCheckWorkItem.cs
- Dispatcher.cs
- WebPartTransformerAttribute.cs
- DbConnectionPoolCounters.cs
- streamingZipPartStream.cs
- XmlHelper.cs
- GiveFeedbackEventArgs.cs
- GeneratedView.cs