Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Framework / System / Windows / LostFocusEventManager.cs / 1 / 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)
{
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;
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.
//----------------------------------------------------------------------------
//
//
// 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)
{
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;
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
- MobileListItemCollection.cs
- IdentityHolder.cs
- SiteMembershipCondition.cs
- LinqDataSourceUpdateEventArgs.cs
- PeerTransportListenAddressConverter.cs
- InternalResources.cs
- PolyBezierSegmentFigureLogic.cs
- TemplateAction.cs
- HtmlInputPassword.cs
- XhtmlConformanceSection.cs
- HyperLinkDataBindingHandler.cs
- CodeBinaryOperatorExpression.cs
- _UncName.cs
- Context.cs
- ConfigXmlCDataSection.cs
- Cursor.cs
- CodeDOMUtility.cs
- CapabilitiesAssignment.cs
- ConstrainedDataObject.cs
- GenericPrincipal.cs
- NativeMethods.cs
- DataTableMapping.cs
- AnimationLayer.cs
- WebPartDisplayModeCollection.cs
- ListItemViewAttribute.cs
- SettingsSavedEventArgs.cs
- ProcessThread.cs
- SmtpNetworkElement.cs
- InstalledFontCollection.cs
- StylusButton.cs
- Property.cs
- LogEntryUtils.cs
- X509CertificateCollection.cs
- WebControlAdapter.cs
- CacheDependency.cs
- DataGridViewSelectedCellsAccessibleObject.cs
- FacetEnabledSchemaElement.cs
- EncryptedXml.cs
- ClientFormsAuthenticationCredentials.cs
- SystemEvents.cs
- BuildProvider.cs
- EncryptedType.cs
- WebPartEventArgs.cs
- ManagementQuery.cs
- AsymmetricAlgorithm.cs
- NonClientArea.cs
- ColumnPropertiesGroup.cs
- SmtpException.cs
- WindowAutomationPeer.cs
- DecimalAnimationUsingKeyFrames.cs
- Label.cs
- Geometry3D.cs
- TemplatedMailWebEventProvider.cs
- WebControlsSection.cs
- PtsContext.cs
- Stroke.cs
- ThousandthOfEmRealPoints.cs
- SupportsPreviewControlAttribute.cs
- CriticalFinalizerObject.cs
- complextypematerializer.cs
- FloaterParagraph.cs
- AsyncPostBackErrorEventArgs.cs
- QilReplaceVisitor.cs
- Int32RectValueSerializer.cs
- BamlResourceContent.cs
- Condition.cs
- WmlCalendarAdapter.cs
- MDIWindowDialog.cs
- SourceSwitch.cs
- _NTAuthentication.cs
- EntityTransaction.cs
- XhtmlBasicImageAdapter.cs
- FragmentQueryKB.cs
- HelloOperation11AsyncResult.cs
- ImpersonationContext.cs
- BindingBase.cs
- TCEAdapterGenerator.cs
- AssemblyUtil.cs
- EncodingNLS.cs
- SspiHelper.cs
- FtpWebResponse.cs
- AsymmetricSignatureDeformatter.cs
- DataFormats.cs
- NewExpression.cs
- HtmlButton.cs
- BidPrivateBase.cs
- UniqueIdentifierService.cs
- XmlSerializationGeneratedCode.cs
- TemplateKey.cs
- Membership.cs
- SessionStateModule.cs
- ActivationServices.cs
- Mapping.cs
- CaseInsensitiveHashCodeProvider.cs
- PkcsUtils.cs
- ClusterSafeNativeMethods.cs
- EventEntry.cs
- WmpBitmapEncoder.cs
- SystemEvents.cs
- ChannelReliableSession.cs