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
- tabpagecollectioneditor.cs
- SqlConnectionString.cs
- HttpContextServiceHost.cs
- WebResourceUtil.cs
- BehaviorEditorPart.cs
- MeasureItemEvent.cs
- TypeListConverter.cs
- BufferedGraphicsManager.cs
- InstanceHandleConflictException.cs
- DBSchemaRow.cs
- DynamicValidatorEventArgs.cs
- Vector3DCollection.cs
- _ListenerAsyncResult.cs
- CompilerResults.cs
- CodePageUtils.cs
- ToolBarDesigner.cs
- Animatable.cs
- IPEndPoint.cs
- MergeExecutor.cs
- XamlGridLengthSerializer.cs
- PersonalizationProviderCollection.cs
- WSHttpBinding.cs
- FunctionNode.cs
- MiniModule.cs
- Registry.cs
- BamlLocalizerErrorNotifyEventArgs.cs
- GlobalEventManager.cs
- Console.cs
- Lasso.cs
- LinqDataSourceUpdateEventArgs.cs
- TransformerInfoCollection.cs
- StreamInfo.cs
- Version.cs
- ChooseAction.cs
- DeclarativeCatalogPart.cs
- Events.cs
- arabicshape.cs
- ParallelEnumerableWrapper.cs
- DebugInfo.cs
- OletxEnlistment.cs
- StorageSetMapping.cs
- ThicknessKeyFrameCollection.cs
- SetterBaseCollection.cs
- AudienceUriMode.cs
- PrincipalPermission.cs
- _SpnDictionary.cs
- ImportException.cs
- CommandHelpers.cs
- SourceFilter.cs
- ConfigXmlElement.cs
- RtfToXamlLexer.cs
- DataGridTextBox.cs
- __Error.cs
- ReferencedAssembly.cs
- BitmapImage.cs
- DynamicILGenerator.cs
- ResourceKey.cs
- StateMachine.cs
- ReferencedCollectionType.cs
- SwitchAttribute.cs
- FieldNameLookup.cs
- SqlDataRecord.cs
- RawUIStateInputReport.cs
- UpdateProgress.cs
- StreamInfo.cs
- ObjectDataSourceFilteringEventArgs.cs
- CaseDesigner.xaml.cs
- BuildProvidersCompiler.cs
- PrinterSettings.cs
- validationstate.cs
- AdapterUtil.cs
- WorkflowInstanceAbortedRecord.cs
- Stacktrace.cs
- DynamicValidatorEventArgs.cs
- RegistryConfigurationProvider.cs
- ImageConverter.cs
- EntityDataSourceWrapper.cs
- MbpInfo.cs
- XmlValidatingReaderImpl.cs
- DelimitedListTraceListener.cs
- ItemContainerGenerator.cs
- CustomWebEventKey.cs
- TextViewDesigner.cs
- UnsafeMethods.cs
- DataGridViewColumnEventArgs.cs
- isolationinterop.cs
- SQLByte.cs
- TextEditorSpelling.cs
- CompensateDesigner.cs
- MDIControlStrip.cs
- HwndAppCommandInputProvider.cs
- ItemCheckedEvent.cs
- TemplateControl.cs
- DesignerSerializationVisibilityAttribute.cs
- XmlSchemaGroupRef.cs
- RijndaelManagedTransform.cs
- AsyncOperationManager.cs
- OleDbParameter.cs
- GenericNameHandler.cs
- QueryPageSettingsEventArgs.cs