Code:
/ 4.0 / 4.0 / 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. //---------------------------------------------------------------------------- // // // 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
- UrlPath.cs
- XNameConverter.cs
- Visitors.cs
- ArgumentsParser.cs
- XNodeNavigator.cs
- DataGridViewRowEventArgs.cs
- QilPatternVisitor.cs
- FixUp.cs
- PermissionSetTriple.cs
- TextDecoration.cs
- GridViewAutomationPeer.cs
- wmiprovider.cs
- WebPartConnectionCollection.cs
- FileClassifier.cs
- CryptoStream.cs
- ColumnWidthChangedEvent.cs
- ImageIndexEditor.cs
- PropertyDescriptorCollection.cs
- SqlMethodCallConverter.cs
- XmlTypeMapping.cs
- EmptyCollection.cs
- _Events.cs
- GeometryModel3D.cs
- CqlLexerHelpers.cs
- PageThemeParser.cs
- FixedDocument.cs
- Utils.cs
- ObjectViewListener.cs
- MenuItemStyleCollectionEditor.cs
- RotateTransform3D.cs
- mediaeventshelper.cs
- ExpressionLink.cs
- PlanCompilerUtil.cs
- EngineSite.cs
- NumericUpDownAccelerationCollection.cs
- ColumnCollection.cs
- AppDomainUnloadedException.cs
- ScrollData.cs
- FileReservationCollection.cs
- FixedPageStructure.cs
- LocalizedNameDescriptionPair.cs
- ScrollBar.cs
- WebBrowserBase.cs
- UmAlQuraCalendar.cs
- EncodingFallbackAwareXmlTextWriter.cs
- UnauthorizedWebPart.cs
- SettingsAttributeDictionary.cs
- ExecutionEngineException.cs
- WSHttpBindingCollectionElement.cs
- WindowsScrollBarBits.cs
- PrePrepareMethodAttribute.cs
- ExcludeFromCodeCoverageAttribute.cs
- util.cs
- ArgumentException.cs
- CompiledIdentityConstraint.cs
- IChannel.cs
- RotationValidation.cs
- FunctionNode.cs
- WorkflowServiceInstance.cs
- MasterPage.cs
- DiscreteKeyFrames.cs
- TransferRequestHandler.cs
- ToolStripControlHost.cs
- Matrix.cs
- ComboBox.cs
- DocobjHost.cs
- SqlBinder.cs
- TickBar.cs
- SoapEnumAttribute.cs
- Blend.cs
- PolyLineSegment.cs
- CountdownEvent.cs
- Parser.cs
- ElapsedEventArgs.cs
- SqlMethodAttribute.cs
- EncodingFallbackAwareXmlTextWriter.cs
- BeginSelectCardRequest.cs
- PublisherMembershipCondition.cs
- ElementNotEnabledException.cs
- SmtpNetworkElement.cs
- DataGridColumnHeadersPresenter.cs
- HttpException.cs
- RegexStringValidator.cs
- Type.cs
- StringSource.cs
- EntityContainer.cs
- DetailsViewCommandEventArgs.cs
- TypeListConverter.cs
- XmlSchemaAttribute.cs
- StringResourceManager.cs
- ResourceDictionary.cs
- TextSpan.cs
- ProfileEventArgs.cs
- XmlSchemaValidationException.cs
- OracleRowUpdatedEventArgs.cs
- XmlILCommand.cs
- WebPartConnectionsConfigureVerb.cs
- XmlSecureResolver.cs
- RestClientProxyHandler.cs
- TextTreeDeleteContentUndoUnit.cs