Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Data / DataChangedEventManager.cs / 1305600 / DataChangedEventManager.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: Manager for the DataChanged event in the "weak event listener" // pattern. See WeakEventTable.cs for an overview. // //--------------------------------------------------------------------------- using System; using System.Windows; // WeakEventManager namespace System.Windows.Data { ////// Manager for the DataSourceProvider.DataChanged event. /// public class DataChangedEventManager : WeakEventManager { #region Constructors // // Constructors // private DataChangedEventManager() { } #endregion Constructors #region Public Methods // // Public Methods // ////// Add a listener to the given source's event. /// public static void AddListener(DataSourceProvider 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(DataSourceProvider source, IWeakEventListener listener) { /* for app-compat, allow RemoveListener(null, x) - it's a no-op (see Dev10 796788) 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) { DataSourceProvider typedSource = (DataSourceProvider)source; typedSource.DataChanged += new EventHandler(OnDataChanged); } ////// Stop listening to the given source for the event. /// protected override void StopListening(object source) { DataSourceProvider typedSource = (DataSourceProvider)source; typedSource.DataChanged -= new EventHandler(OnDataChanged); } #endregion Protected Methods #region Private Properties // // Private Properties // // get the event manager for the current thread private static DataChangedEventManager CurrentManager { get { Type managerType = typeof(DataChangedEventManager); DataChangedEventManager manager = (DataChangedEventManager)GetCurrentManager(managerType); // at first use, create and register a new manager if (manager == null) { manager = new DataChangedEventManager(); SetCurrentManager(managerType, manager); } return manager; } } #endregion Private Properties #region Private Methods // // Private Methods // // event handler for DataChanged event private void OnDataChanged(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 DataChanged event in the "weak event listener" // pattern. See WeakEventTable.cs for an overview. // //--------------------------------------------------------------------------- using System; using System.Windows; // WeakEventManager namespace System.Windows.Data { ////// Manager for the DataSourceProvider.DataChanged event. /// public class DataChangedEventManager : WeakEventManager { #region Constructors // // Constructors // private DataChangedEventManager() { } #endregion Constructors #region Public Methods // // Public Methods // ////// Add a listener to the given source's event. /// public static void AddListener(DataSourceProvider 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(DataSourceProvider source, IWeakEventListener listener) { /* for app-compat, allow RemoveListener(null, x) - it's a no-op (see Dev10 796788) 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) { DataSourceProvider typedSource = (DataSourceProvider)source; typedSource.DataChanged += new EventHandler(OnDataChanged); } ////// Stop listening to the given source for the event. /// protected override void StopListening(object source) { DataSourceProvider typedSource = (DataSourceProvider)source; typedSource.DataChanged -= new EventHandler(OnDataChanged); } #endregion Protected Methods #region Private Properties // // Private Properties // // get the event manager for the current thread private static DataChangedEventManager CurrentManager { get { Type managerType = typeof(DataChangedEventManager); DataChangedEventManager manager = (DataChangedEventManager)GetCurrentManager(managerType); // at first use, create and register a new manager if (manager == null) { manager = new DataChangedEventManager(); SetCurrentManager(managerType, manager); } return manager; } } #endregion Private Properties #region Private Methods // // Private Methods // // event handler for DataChanged event private void OnDataChanged(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
- EventLogPermissionAttribute.cs
- ComboBoxDesigner.cs
- Vector.cs
- TextPointerBase.cs
- SendKeys.cs
- WebScriptEnablingElement.cs
- PKCS1MaskGenerationMethod.cs
- EntityModelSchemaGenerator.cs
- Ipv6Element.cs
- InternalBufferOverflowException.cs
- X509Certificate2Collection.cs
- RegistryKey.cs
- ImageMapEventArgs.cs
- SerializationBinder.cs
- BaseTemplateBuildProvider.cs
- AxisAngleRotation3D.cs
- TypeConverterMarkupExtension.cs
- EtwTrackingParticipant.cs
- PeerNameRecord.cs
- SecurityTokenContainer.cs
- AnnotationStore.cs
- TraceSwitch.cs
- PeerValidationBehavior.cs
- AnnotationComponentManager.cs
- RelOps.cs
- StatusBarDesigner.cs
- FormsAuthenticationEventArgs.cs
- ManifestResourceInfo.cs
- COM2IDispatchConverter.cs
- AsyncCompletedEventArgs.cs
- WebRequest.cs
- _HelperAsyncResults.cs
- CircleHotSpot.cs
- ParallelEnumerableWrapper.cs
- LinkClickEvent.cs
- _NegotiateClient.cs
- DeviceContexts.cs
- GridViewRowCollection.cs
- Iis7Helper.cs
- Timeline.cs
- XmlWriter.cs
- RowBinding.cs
- transactioncontext.cs
- AttributeQuery.cs
- TextSimpleMarkerProperties.cs
- PageVisual.cs
- ModelUIElement3D.cs
- AnnotationStore.cs
- COAUTHIDENTITY.cs
- ActivationProxy.cs
- mediapermission.cs
- UrlMappingsSection.cs
- SectionInput.cs
- basenumberconverter.cs
- SizeAnimationClockResource.cs
- MouseGesture.cs
- PermissionSetEnumerator.cs
- MobileControlBuilder.cs
- EmptyImpersonationContext.cs
- TextPattern.cs
- SubstitutionList.cs
- TryCatchDesigner.xaml.cs
- IndexedString.cs
- X509ScopedServiceCertificateElementCollection.cs
- ExceptionValidationRule.cs
- PositiveTimeSpanValidator.cs
- SocketCache.cs
- TextEndOfSegment.cs
- XmlDataImplementation.cs
- SiteMapNodeItem.cs
- elementinformation.cs
- SQLRoleProvider.cs
- PenLineCapValidation.cs
- WmlFormAdapter.cs
- EllipticalNodeOperations.cs
- OracleRowUpdatedEventArgs.cs
- JapaneseLunisolarCalendar.cs
- TextView.cs
- SecurityTokenResolver.cs
- UIElement3D.cs
- MetadataArtifactLoaderResource.cs
- PrtTicket_Public.cs
- Compiler.cs
- ExpressionPrinter.cs
- DataProtection.cs
- ControlPaint.cs
- EventListenerClientSide.cs
- Attributes.cs
- GuidelineCollection.cs
- SetIterators.cs
- X509Certificate2.cs
- UnsafeNativeMethodsMilCoreApi.cs
- FontWeight.cs
- DbDeleteCommandTree.cs
- ExtensionSurface.cs
- ManagedIStream.cs
- WebBrowsableAttribute.cs
- ValidationError.cs
- PathNode.cs
- DbConnectionClosed.cs