Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- NamedPermissionSet.cs
- securitymgrsite.cs
- TagPrefixInfo.cs
- PropertyEmitter.cs
- TerminateDesigner.cs
- ListParaClient.cs
- FilterEventArgs.cs
- LocalIdKeyIdentifierClause.cs
- CustomCategoryAttribute.cs
- ExpressionVisitorHelpers.cs
- XmlSubtreeReader.cs
- ToolStripItemBehavior.cs
- LinqTreeNodeEvaluator.cs
- AuthorizationSection.cs
- RichTextBox.cs
- RegexWorker.cs
- Baml2006ReaderSettings.cs
- TemplateControlBuildProvider.cs
- PtsCache.cs
- XmlObjectSerializer.cs
- SqlBulkCopyColumnMapping.cs
- TextTreeDeleteContentUndoUnit.cs
- DetailsViewDeletedEventArgs.cs
- TabItem.cs
- BasicAsyncResult.cs
- XmlQueryOutput.cs
- ViewManager.cs
- BlurBitmapEffect.cs
- GregorianCalendar.cs
- RuntimeCompatibilityAttribute.cs
- Item.cs
- XmlAnyElementAttribute.cs
- DataGridViewHeaderCell.cs
- RangeValuePattern.cs
- GridViewHeaderRowPresenterAutomationPeer.cs
- XmlToDatasetMap.cs
- DoubleLinkListEnumerator.cs
- milrender.cs
- PackageProperties.cs
- PrintPageEvent.cs
- ThreadStateException.cs
- SapiRecoContext.cs
- ClientTargetCollection.cs
- BufferBuilder.cs
- PrintController.cs
- ScrollViewer.cs
- BufferBuilder.cs
- ComMethodElementCollection.cs
- EmbeddedMailObjectsCollection.cs
- SoapSchemaImporter.cs
- ColumnResizeUndoUnit.cs
- FontWeights.cs
- _HTTPDateParse.cs
- XmlFormatExtensionPointAttribute.cs
- GridViewDeleteEventArgs.cs
- Subtree.cs
- TaskFileService.cs
- ISFTagAndGuidCache.cs
- DataBoundControlAdapter.cs
- ParentQuery.cs
- FileAuthorizationModule.cs
- WebHostedComPlusServiceHost.cs
- VisualTarget.cs
- WmlControlAdapter.cs
- ClonableStack.cs
- BasicExpressionVisitor.cs
- SourceItem.cs
- DebugInfoExpression.cs
- DoubleLinkList.cs
- ToolboxService.cs
- XmlSchemaAnnotation.cs
- ContainerParaClient.cs
- FieldNameLookup.cs
- FileSystemInfo.cs
- CornerRadiusConverter.cs
- WindowVisualStateTracker.cs
- SynchronizedDispatch.cs
- PreviewPrintController.cs
- PeekCompletedEventArgs.cs
- PropertyChangingEventArgs.cs
- PersonalizationProvider.cs
- CompletedAsyncResult.cs
- QuaternionKeyFrameCollection.cs
- OdbcConnectionFactory.cs
- ProxyWebPart.cs
- TextParagraphView.cs
- IntMinMaxAggregationOperator.cs
- RoamingStoreFile.cs
- DirectoryNotFoundException.cs
- Msmq4SubqueuePoisonHandler.cs
- TrustSection.cs
- TimeoutException.cs
- SqlFormatter.cs
- RouteData.cs
- BlockCollection.cs
- DataControlImageButton.cs
- OperationGenerator.cs
- QueryRewriter.cs
- ContextInformation.cs
- WindowInteropHelper.cs