Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Framework / MS / Internal / Annotations / AnnotationResourceCollection.cs / 1 / 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. //---------------------------------------------------------------------------- // // // 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
- SemanticValue.cs
- ScriptReferenceEventArgs.cs
- TextElementEditingBehaviorAttribute.cs
- DBSqlParser.cs
- EditCommandColumn.cs
- StaticDataManager.cs
- TreeNodeCollection.cs
- RuleSet.cs
- XmlSchemaParticle.cs
- TextRunCache.cs
- ThreadStateException.cs
- Models.cs
- DataGridViewCellPaintingEventArgs.cs
- ReleaseInstanceMode.cs
- ColorTransformHelper.cs
- Rotation3D.cs
- ZoneLinkButton.cs
- SmiEventSink_DeferedProcessing.cs
- SessionEndedEventArgs.cs
- X509Certificate2.cs
- InstancePersistenceContext.cs
- FeatureSupport.cs
- XmlSchemaAnnotation.cs
- CommandLineParser.cs
- XmlObjectSerializer.cs
- FixedSOMTableRow.cs
- ScrollableControl.cs
- DataSourceXmlClassAttribute.cs
- BaseTemplateCodeDomTreeGenerator.cs
- NotSupportedException.cs
- PropertyDescriptorGridEntry.cs
- StrokeSerializer.cs
- SpStreamWrapper.cs
- DesignRelationCollection.cs
- ContainerSelectorGlyph.cs
- ByeOperationAsyncResult.cs
- SqlInfoMessageEvent.cs
- DeploymentSectionCache.cs
- CmsInterop.cs
- Matrix3DStack.cs
- TableLayoutCellPaintEventArgs.cs
- ExpressionList.cs
- HttpCacheVary.cs
- UpdateProgress.cs
- TypeConverterValueSerializer.cs
- SoapFaultCodes.cs
- SingleSelectRootGridEntry.cs
- BitmapEffectDrawingContextState.cs
- Tokenizer.cs
- BlurBitmapEffect.cs
- TypedDataSourceCodeGenerator.cs
- SerializationEventsCache.cs
- XmlEnumAttribute.cs
- ObjectDataSourceDisposingEventArgs.cs
- PersonalizationState.cs
- xamlnodes.cs
- CollectionViewGroupInternal.cs
- ListViewDeletedEventArgs.cs
- FlowDocumentPage.cs
- OverflowException.cs
- XmlUtf8RawTextWriter.cs
- Underline.cs
- WindowsFormsSectionHandler.cs
- CaseExpr.cs
- Executor.cs
- ProgressBarRenderer.cs
- BasicKeyConstraint.cs
- DocumentPageHost.cs
- MissingManifestResourceException.cs
- WeakHashtable.cs
- FragmentQueryProcessor.cs
- AppLevelCompilationSectionCache.cs
- GacUtil.cs
- TitleStyle.cs
- Page.cs
- SqlParameterCollection.cs
- TreeNodeClickEventArgs.cs
- NoPersistScope.cs
- ConstraintManager.cs
- HtmlImage.cs
- ExternalFile.cs
- RadioButtonFlatAdapter.cs
- CroppedBitmap.cs
- NotificationContext.cs
- DependencyPropertyValueSerializer.cs
- WindowsButton.cs
- FormsAuthenticationUserCollection.cs
- UpDownBase.cs
- EventDescriptorCollection.cs
- _SslStream.cs
- SoapExtensionReflector.cs
- CatalogPart.cs
- DataColumnCollection.cs
- PrimitiveRenderer.cs
- PropertyBuilder.cs
- DbProviderFactories.cs
- QilPatternFactory.cs
- EventMappingSettingsCollection.cs
- DeviceSpecific.cs
- DocumentSequence.cs