Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Base / System / Collections / Specialized / CollectionChangedEventManager.cs / 1 / CollectionChangedEventManager.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: Manager for the CollectionChanged event in the "weak event listener" // pattern. See WeakEventTable.cs for an overview. // //--------------------------------------------------------------------------- using System; using System.Windows; // WeakEventManager namespace System.Collections.Specialized { ////// Manager for the INotifyCollectionChanged.CollectionChanged event. /// public class CollectionChangedEventManager : WeakEventManager { #region Constructors // // Constructors // private CollectionChangedEventManager() { } #endregion Constructors #region Public Methods // // Public Methods // ////// Add a listener to the given source's event. /// public static void AddListener(INotifyCollectionChanged source, IWeakEventListener listener) { CurrentManager.ProtectedAddListener(source, listener); } ////// Remove a listener to the given source's event. /// public static void RemoveListener(INotifyCollectionChanged 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) { INotifyCollectionChanged typedSource = (INotifyCollectionChanged)source; typedSource.CollectionChanged += new NotifyCollectionChangedEventHandler(OnCollectionChanged); } ////// Stop listening to the given source for the event. /// protected override void StopListening(object source) { INotifyCollectionChanged typedSource = (INotifyCollectionChanged)source; typedSource.CollectionChanged -= new NotifyCollectionChangedEventHandler(OnCollectionChanged); } #endregion Protected Methods #region Private Properties // // Private Properties // // get the event manager for the current thread private static CollectionChangedEventManager CurrentManager { get { Type managerType = typeof(CollectionChangedEventManager); CollectionChangedEventManager manager = (CollectionChangedEventManager)GetCurrentManager(managerType); // at first use, create and register a new manager if (manager == null) { manager = new CollectionChangedEventManager(); SetCurrentManager(managerType, manager); } return manager; } } #endregion Private Properties #region Private Methods // // Private Methods // // event handler for CollectionChanged event private void OnCollectionChanged(object sender, NotifyCollectionChangedEventArgs 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 CollectionChanged event in the "weak event listener" // pattern. See WeakEventTable.cs for an overview. // //--------------------------------------------------------------------------- using System; using System.Windows; // WeakEventManager namespace System.Collections.Specialized { ////// Manager for the INotifyCollectionChanged.CollectionChanged event. /// public class CollectionChangedEventManager : WeakEventManager { #region Constructors // // Constructors // private CollectionChangedEventManager() { } #endregion Constructors #region Public Methods // // Public Methods // ////// Add a listener to the given source's event. /// public static void AddListener(INotifyCollectionChanged source, IWeakEventListener listener) { CurrentManager.ProtectedAddListener(source, listener); } ////// Remove a listener to the given source's event. /// public static void RemoveListener(INotifyCollectionChanged 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) { INotifyCollectionChanged typedSource = (INotifyCollectionChanged)source; typedSource.CollectionChanged += new NotifyCollectionChangedEventHandler(OnCollectionChanged); } ////// Stop listening to the given source for the event. /// protected override void StopListening(object source) { INotifyCollectionChanged typedSource = (INotifyCollectionChanged)source; typedSource.CollectionChanged -= new NotifyCollectionChangedEventHandler(OnCollectionChanged); } #endregion Protected Methods #region Private Properties // // Private Properties // // get the event manager for the current thread private static CollectionChangedEventManager CurrentManager { get { Type managerType = typeof(CollectionChangedEventManager); CollectionChangedEventManager manager = (CollectionChangedEventManager)GetCurrentManager(managerType); // at first use, create and register a new manager if (manager == null) { manager = new CollectionChangedEventManager(); SetCurrentManager(managerType, manager); } return manager; } } #endregion Private Properties #region Private Methods // // Private Methods // // event handler for CollectionChanged event private void OnCollectionChanged(object sender, NotifyCollectionChangedEventArgs 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
- HttpStreamMessageEncoderFactory.cs
- GenericEnumerator.cs
- SQLMoney.cs
- ColorKeyFrameCollection.cs
- GeometryModel3D.cs
- SingleAnimationBase.cs
- XmlSerializationWriter.cs
- AutomationProperties.cs
- GB18030Encoding.cs
- MemoryPressure.cs
- DesignSurfaceServiceContainer.cs
- TypeBuilder.cs
- DesigntimeLicenseContext.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- InputLanguageManager.cs
- RemotingConfiguration.cs
- ArcSegment.cs
- CompoundFileIOPermission.cs
- BreakRecordTable.cs
- ReflectionTypeLoadException.cs
- ContainerFilterService.cs
- BufferedMessageWriter.cs
- X509Certificate.cs
- GeometryCombineModeValidation.cs
- CatalogZone.cs
- XpsS0ValidatingLoader.cs
- TextReader.cs
- NetworkInformationException.cs
- NativeMethodsCLR.cs
- ValidatorCompatibilityHelper.cs
- IsolatedStorageException.cs
- DefaultEventAttribute.cs
- DataViewSettingCollection.cs
- DataPagerFieldCommandEventArgs.cs
- DataGridViewDataErrorEventArgs.cs
- OdbcError.cs
- baseaxisquery.cs
- ProfileProvider.cs
- WindowsUpDown.cs
- Opcode.cs
- BuildProvidersCompiler.cs
- FrameworkElementFactoryMarkupObject.cs
- GeneralTransform3D.cs
- Rule.cs
- PropVariant.cs
- UITypeEditors.cs
- IOException.cs
- CacheManager.cs
- StringAnimationUsingKeyFrames.cs
- SeparatorAutomationPeer.cs
- DesignerCategoryAttribute.cs
- MouseGesture.cs
- LoadWorkflowByInstanceKeyCommand.cs
- EntityDataSourceColumn.cs
- HorizontalAlignConverter.cs
- ToolBar.cs
- DataSourceControlBuilder.cs
- HostProtectionPermission.cs
- UseManagedPresentationBindingElement.cs
- SqlPersistenceWorkflowInstanceDescription.cs
- EntityContainer.cs
- MessageLogTraceRecord.cs
- DragEvent.cs
- PointCollection.cs
- ArraySegment.cs
- UnsignedPublishLicense.cs
- MessageAction.cs
- XdrBuilder.cs
- WebPartDisplayMode.cs
- DecoderFallback.cs
- QueryPageSettingsEventArgs.cs
- ArgumentValue.cs
- InvalidWMPVersionException.cs
- Table.cs
- RuleSettings.cs
- XMLSyntaxException.cs
- BitmapEffectDrawingContextState.cs
- FloaterBaseParaClient.cs
- ServicePrincipalNameElement.cs
- SequenceNumber.cs
- DataBindingCollection.cs
- EventQueueState.cs
- ResourceAttributes.cs
- BaseAsyncResult.cs
- SmiEventStream.cs
- NamespaceQuery.cs
- AttributeCollection.cs
- CompressStream.cs
- x509utils.cs
- designeractionlistschangedeventargs.cs
- PerformanceCountersElement.cs
- SqlRowUpdatingEvent.cs
- XmlSerializerSection.cs
- DataBoundControlHelper.cs
- QuaternionConverter.cs
- Message.cs
- SQLMoneyStorage.cs
- GPPOINTF.cs
- XmlDictionaryReader.cs
- UrlMapping.cs