Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / MS / Internal / Annotations / AnnotationResourceCollection.cs / 1305600 / AnnotationResourceCollection.cs
//---------------------------------------------------------------------------- // //// Copyright (C) 2003 by Microsoft Corporation. All rights reserved. // // // Description: Subclass of AnnotationObservableCollectionwhich has slightly different // eventing behavior for ClearItems and SetItem methods. This class // is used specifically for AnnotationResources. // // History: // 03/10/2005 : rruiz - created // //--------------------------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Collections.Specialized; using System.ComponentModel; using System.Diagnostics; using System.Windows.Annotations; using System.Windows.Data; namespace MS.Internal.Annotations { /// /// Subclass of AnnotationObservableCollection which has slightly different /// eventing behavior for ClearItems and SetItem methods. This class /// is used specifically for AnnotationResources. /// internal sealed class AnnotationResourceCollection : AnnotationObservableCollection{ //----------------------------------------------------- // // Constructors // //----------------------------------------------------- #region Constructors /// /// Initializes a new instance of AnnotationResourceCollection that is empty and has default initial capacity. /// public AnnotationResourceCollection() : base() { } #endregion Constructors //------------------------------------------------------ // // Public Events // //----------------------------------------------------- #region Public Events ////// Event fired when an item in the collection changes (fires a PropertyChanged event). /// public event PropertyChangedEventHandler ItemChanged; #endregion Public Events //------------------------------------------------------ // // Protected Methods // //------------------------------------------------------ #region Protected Methods ////// Override this method and provide a different set of events /// when items are cleared from the collection. Specifically, /// fire a Remove event for each item in the collection. /// protected override void ProtectedClearItems() { // We want to fire for each item in the list Listlist = new List (this); Items.Clear(); // directly clear Collection inner Items collection OnPropertyChanged(CountString); OnPropertyChanged(IndexerName); OnCollectionCleared(list); } /// /// Override this method and provide a different set of events /// when an item is set on a given index in this collection. /// Specifically, fire a both a Remove and Add event (as the /// grand-parent class ObservableCollection does). /// /// index of item to set /// item to set at that index protected override void ProtectedSetItem(int index, AnnotationResource item) { // Use the standard built in events (one for item removed and one for item added) ObservableCollectionSetItem(index, item); // Calls raw ObservableCollection method } #endregion Protected Methods //----------------------------------------------------- // // Private Methods // //------------------------------------------------------ #region Private Methods // fire an event for each item removed from the collection void OnCollectionCleared(IEnumerablelist) { foreach(object item in list) { OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Remove, item, 0)); } } private void OnPropertyChanged(string propertyName) { OnPropertyChanged(new PropertyChangedEventArgs(propertyName)); } // raise CollectionChanged event to any listeners protected override void OnItemPropertyChanged(object sender, PropertyChangedEventArgs e) { if (ItemChanged != null) { ItemChanged(sender, e); } } #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
- EdgeModeValidation.cs
- SocketManager.cs
- ProcessManager.cs
- MailHeaderInfo.cs
- MailAddressCollection.cs
- NamedObject.cs
- BinaryObjectWriter.cs
- Interlocked.cs
- VariantWrapper.cs
- SafeNativeMethodsCLR.cs
- TableRowGroup.cs
- HttpResponseInternalWrapper.cs
- BidirectionalDictionary.cs
- StringFreezingAttribute.cs
- CodeBlockBuilder.cs
- InputScopeManager.cs
- PassportAuthenticationModule.cs
- EntityDataSourceContextCreatedEventArgs.cs
- PrintingPermissionAttribute.cs
- XPathPatternBuilder.cs
- NetworkInterface.cs
- CodeDomExtensionMethods.cs
- ServerType.cs
- NetCodeGroup.cs
- ExtensionQuery.cs
- BoundPropertyEntry.cs
- BuiltInPermissionSets.cs
- RegexRunnerFactory.cs
- ToolStripItemDesigner.cs
- CodeVariableReferenceExpression.cs
- HttpStreamFormatter.cs
- XmlSubtreeReader.cs
- ConfigXmlWhitespace.cs
- SystemIPGlobalStatistics.cs
- GifBitmapDecoder.cs
- CellTreeNodeVisitors.cs
- Int32CollectionConverter.cs
- RoleServiceManager.cs
- TokenizerHelper.cs
- ImageDrawing.cs
- TemplatedMailWebEventProvider.cs
- SiteMapNodeCollection.cs
- SystemWebCachingSectionGroup.cs
- SelfSignedCertificate.cs
- ExpandSegmentCollection.cs
- TimeoutValidationAttribute.cs
- XmlSchemaParticle.cs
- LogArchiveSnapshot.cs
- DbDataRecord.cs
- SerializationAttributes.cs
- KeyTimeConverter.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- KnownColorTable.cs
- TokenizerHelper.cs
- LoadGrammarCompletedEventArgs.cs
- HistoryEventArgs.cs
- CodeThrowExceptionStatement.cs
- SessionIDManager.cs
- ConditionalAttribute.cs
- EncodingDataItem.cs
- WindowsGrip.cs
- ContentPlaceHolder.cs
- CalendarDay.cs
- DataBindingCollection.cs
- EdgeModeValidation.cs
- CodeEntryPointMethod.cs
- WriteTimeStream.cs
- MetadataArtifactLoaderComposite.cs
- InstanceNotReadyException.cs
- Matrix.cs
- XmlSchemaAnyAttribute.cs
- MaterialGroup.cs
- DragCompletedEventArgs.cs
- SocketElement.cs
- KeySplineConverter.cs
- HostUtils.cs
- MappableObjectManager.cs
- EntityConnectionStringBuilderItem.cs
- DockPattern.cs
- DataObject.cs
- ClientUrlResolverWrapper.cs
- SafePEFileHandle.cs
- FontDriver.cs
- SecurityContext.cs
- SingleTagSectionHandler.cs
- CatalogPartChrome.cs
- ScaleTransform.cs
- StickyNote.cs
- ArgumentValidation.cs
- TextPenaltyModule.cs
- CapabilitiesSection.cs
- ConnectivityStatus.cs
- Column.cs
- DataGridViewImageCell.cs
- TransformDescriptor.cs
- WindowCollection.cs
- SortDescriptionCollection.cs
- OleDbInfoMessageEvent.cs
- WindowsButton.cs
- SimpleLine.cs