Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / LostFocusEventManager.cs / 1305600 / LostFocusEventManager.cs
//----------------------------------------------------------------------------
//
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//
// Description: Manager for the LostFocus event in the "weak event listener"
// pattern. See WeakEventTable.cs for an overview.
//
//---------------------------------------------------------------------------
using System;
using System.Windows; // WeakEventManager
using MS.Internal; // Helper
namespace System.Windows
{
///
/// Manager for the DependencyObject.LostFocus event.
///
public class LostFocusEventManager : WeakEventManager
{
#region Constructors
//
// Constructors
//
private LostFocusEventManager()
{
}
#endregion Constructors
#region Public Methods
//
// Public Methods
//
///
/// Add a listener to the given source's event.
///
public static void AddListener(DependencyObject source, IWeakEventListener listener)
{
if (source == null)
throw new ArgumentNullException("source");
if (listener == null)
throw new ArgumentNullException("listener");
CurrentManager.ProtectedAddListener(source, listener);
}
///
/// Remove a listener to the given source's event.
///
public static void RemoveListener(DependencyObject source, IWeakEventListener listener)
{
if (source == null)
throw new ArgumentNullException("source");
if (listener == null)
throw new ArgumentNullException("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;
FrameworkElement fe;
FrameworkContentElement fce;
Helper.DowncastToFEorFCE(typedSource, out fe, out fce, true);
if (fe != null)
fe.LostFocus += new RoutedEventHandler(OnLostFocus);
else if (fce != null)
fce.LostFocus += new RoutedEventHandler(OnLostFocus);
}
///
/// Stop listening to the given source for the event.
///
protected override void StopListening(object source)
{
DependencyObject typedSource = (DependencyObject)source;
FrameworkElement fe;
FrameworkContentElement fce;
Helper.DowncastToFEorFCE(typedSource, out fe, out fce, true);
if (fe != null)
fe.LostFocus -= new RoutedEventHandler(OnLostFocus);
else if (fce != null)
fce.LostFocus -= new RoutedEventHandler(OnLostFocus);
}
#endregion Protected Methods
#region Private Properties
//
// Private Properties
//
// get the event manager for the current thread
private static LostFocusEventManager CurrentManager
{
get
{
Type managerType = typeof(LostFocusEventManager);
LostFocusEventManager manager = (LostFocusEventManager)GetCurrentManager(managerType);
// at first use, create and register a new manager
if (manager == null)
{
manager = new LostFocusEventManager();
SetCurrentManager(managerType, manager);
}
return manager;
}
}
#endregion Private Properties
#region Private Methods
//
// Private Methods
//
// event handler for LostFocus event
private void OnLostFocus(object sender, RoutedEventArgs 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
- WebPartConnectionsCancelEventArgs.cs
- SamlDelegatingWriter.cs
- basevalidator.cs
- SchemaInfo.cs
- SQLDateTimeStorage.cs
- DeviceContext2.cs
- CompilationSection.cs
- InheritanceUI.cs
- NegationPusher.cs
- Block.cs
- WebServiceTypeData.cs
- IgnorePropertiesAttribute.cs
- BitmapFrameDecode.cs
- ChameleonKey.cs
- SiteOfOriginContainer.cs
- ReadOnlyHierarchicalDataSourceView.cs
- Label.cs
- OleDbPropertySetGuid.cs
- ToolStripItemRenderEventArgs.cs
- SessionParameter.cs
- TextTreeRootNode.cs
- SurrogateChar.cs
- WindowsFormsLinkLabel.cs
- MatrixCamera.cs
- SqlProvider.cs
- DBCommand.cs
- Animatable.cs
- WorkflowCommandExtensionItem.cs
- SqlResolver.cs
- XmlFormatWriterGenerator.cs
- MsmqReceiveParameters.cs
- _UriTypeConverter.cs
- Boolean.cs
- AutomationPattern.cs
- XmlSchemaSequence.cs
- MobileUITypeEditor.cs
- ObjectConverter.cs
- TlsnegoTokenProvider.cs
- SecurityContext.cs
- CustomDictionarySources.cs
- DocobjHost.cs
- tabpagecollectioneditor.cs
- LinqDataSourceStatusEventArgs.cs
- ApplyTemplatesAction.cs
- ApplicationContext.cs
- CacheSection.cs
- PointConverter.cs
- MobileControlPersister.cs
- Win32Native.cs
- ExtentCqlBlock.cs
- cookiecontainer.cs
- CellQuery.cs
- XmlSerializer.cs
- IteratorDescriptor.cs
- CapabilitiesSection.cs
- CodeGenHelper.cs
- PathNode.cs
- ProtectedConfigurationSection.cs
- PartManifestEntry.cs
- Misc.cs
- ParameterExpression.cs
- SystemIPAddressInformation.cs
- SizeAnimation.cs
- NullableFloatMinMaxAggregationOperator.cs
- Renderer.cs
- XsdDateTime.cs
- InputEventArgs.cs
- infer.cs
- SyntaxCheck.cs
- StringReader.cs
- DependencyObject.cs
- ScriptDescriptor.cs
- FontConverter.cs
- ColumnHeaderConverter.cs
- EditorZone.cs
- sqlcontext.cs
- SettingsPropertyValueCollection.cs
- FixedStringLookup.cs
- MethodImplAttribute.cs
- SettingsContext.cs
- XmlComplianceUtil.cs
- Variant.cs
- MarkupProperty.cs
- ResourceExpression.cs
- ToolBarButtonDesigner.cs
- Validator.cs
- OdbcReferenceCollection.cs
- MembershipPasswordException.cs
- FreeFormDesigner.cs
- ThreadExceptionEvent.cs
- EngineSite.cs
- TryExpression.cs
- ClrPerspective.cs
- RtfNavigator.cs
- StretchValidation.cs
- XmlSchemaCollection.cs
- ProfileService.cs
- HMACMD5.cs
- WebPartAddingEventArgs.cs
- ApplicationServiceHelper.cs