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
- ListViewDeleteEventArgs.cs
- DeadCharTextComposition.cs
- XmlElement.cs
- PointAnimationUsingPath.cs
- WebPartZone.cs
- MetafileHeader.cs
- WebPartHelpVerb.cs
- WebConfigurationFileMap.cs
- Point4DValueSerializer.cs
- SpecialTypeDataContract.cs
- DataBindingList.cs
- InlineCategoriesDocument.cs
- BindingExpressionBase.cs
- ExpandSegment.cs
- FormViewAutoFormat.cs
- TextParagraphProperties.cs
- XXXInfos.cs
- DataGridTableCollection.cs
- webclient.cs
- SchemaImporter.cs
- DefaultEventAttribute.cs
- ClientUtils.cs
- ASCIIEncoding.cs
- EventlogProvider.cs
- PeerMaintainer.cs
- PointLightBase.cs
- Brushes.cs
- CreateUserErrorEventArgs.cs
- DBPropSet.cs
- QilTargetType.cs
- _LoggingObject.cs
- DragEvent.cs
- Inflater.cs
- httpserverutility.cs
- SurrogateChar.cs
- ScriptDescriptor.cs
- SqlUDTStorage.cs
- ResourcesBuildProvider.cs
- EntityTypeEmitter.cs
- TraceFilter.cs
- XmlRawWriterWrapper.cs
- EmptyTextWriter.cs
- ProviderBase.cs
- TransactionManagerProxy.cs
- CellTreeNode.cs
- MimeXmlImporter.cs
- StatusBarDesigner.cs
- HtmlInputReset.cs
- IItemProperties.cs
- SqlRowUpdatedEvent.cs
- MatrixAnimationBase.cs
- RegexRunnerFactory.cs
- Win32.cs
- VirtualizedItemPattern.cs
- TableLayoutCellPaintEventArgs.cs
- Types.cs
- DBCommandBuilder.cs
- IgnoreSectionHandler.cs
- JavaScriptString.cs
- IriParsingElement.cs
- HyperLink.cs
- WebBrowserBase.cs
- RandomNumberGenerator.cs
- ListBoxChrome.cs
- ReferenceEqualityComparer.cs
- XmlSchemaType.cs
- OperationParameterInfoCollection.cs
- WebPartExportVerb.cs
- LoaderAllocator.cs
- GlyphElement.cs
- StylusPlugInCollection.cs
- HttpContext.cs
- NonSerializedAttribute.cs
- StringOutput.cs
- BindingContext.cs
- ErrorFormatter.cs
- ValidationError.cs
- PolyQuadraticBezierSegment.cs
- ExeContext.cs
- ElementFactory.cs
- SelectionHighlightInfo.cs
- SmtpReplyReaderFactory.cs
- TimelineGroup.cs
- nulltextnavigator.cs
- IsolatedStorageFile.cs
- Rfc2898DeriveBytes.cs
- App.cs
- DataGrid.cs
- ConstructorArgumentAttribute.cs
- SchemaNames.cs
- SqlDataSourceCache.cs
- OdbcFactory.cs
- EngineSite.cs
- XsltInput.cs
- HijriCalendar.cs
- ControlCachePolicy.cs
- XmlDictionaryReader.cs
- TraceSection.cs
- SmiSettersStream.cs
- Module.cs