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
- PickBranch.cs
- ProfilePropertyNameValidator.cs
- MouseEvent.cs
- OleDbPropertySetGuid.cs
- complextypematerializer.cs
- StrokeNodeEnumerator.cs
- TdsParameterSetter.cs
- DbModificationCommandTree.cs
- Script.cs
- StylusPoint.cs
- ResourceCodeDomSerializer.cs
- InternalSafeNativeMethods.cs
- SessionEndingCancelEventArgs.cs
- XmlSchemas.cs
- xamlnodes.cs
- HostingEnvironmentWrapper.cs
- GeneralTransform2DTo3DTo2D.cs
- SystemColors.cs
- HttpListenerResponse.cs
- XmlMemberMapping.cs
- DbExpressionVisitor.cs
- DbParameterCollection.cs
- MtomMessageEncodingElement.cs
- HttpCapabilitiesEvaluator.cs
- XmlSchemaImporter.cs
- MemberAccessException.cs
- Nullable.cs
- GroupBox.cs
- QilScopedVisitor.cs
- FunctionImportMapping.cs
- HotCommands.cs
- BitmapEffectInputConnector.cs
- AssemblyInfo.cs
- PassportAuthenticationEventArgs.cs
- BuilderPropertyEntry.cs
- ListView.cs
- Comparer.cs
- TraceContext.cs
- ConnectionPointCookie.cs
- precedingsibling.cs
- BridgeDataRecord.cs
- CustomSignedXml.cs
- ActivityWithResultConverter.cs
- ComPlusInstanceContextInitializer.cs
- BackStopAuthenticationModule.cs
- PaperSize.cs
- recordstate.cs
- ProxyWebPartManager.cs
- ProvidePropertyAttribute.cs
- XmlSignificantWhitespace.cs
- XmlCharCheckingReader.cs
- TextBoxBase.cs
- SynchronizationLockException.cs
- DrawListViewColumnHeaderEventArgs.cs
- Tokenizer.cs
- HelpInfo.cs
- RegexRunner.cs
- ManagedWndProcTracker.cs
- SQLDouble.cs
- ObjectConverter.cs
- Animatable.cs
- DataGridViewRowEventArgs.cs
- UIElementParaClient.cs
- SafeFileMappingHandle.cs
- PartialCachingAttribute.cs
- WebSysDisplayNameAttribute.cs
- Region.cs
- MessageQueueKey.cs
- StatusBarDesigner.cs
- ListControl.cs
- TypeUtil.cs
- BitmapEffectDrawingContextWalker.cs
- OAVariantLib.cs
- InstalledFontCollection.cs
- ZipIORawDataFileBlock.cs
- DataKey.cs
- DoubleLink.cs
- ClaimComparer.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- RepeatButton.cs
- QilReference.cs
- TraceShell.cs
- SchemaTableOptionalColumn.cs
- InfoCardTrace.cs
- ReadOnlyDataSourceView.cs
- SqlTrackingQuery.cs
- TrackingQuery.cs
- SecurityRuntime.cs
- AsymmetricSignatureDeformatter.cs
- LifetimeServices.cs
- RewritingPass.cs
- SafeEventLogReadHandle.cs
- HtmlElementEventArgs.cs
- AlgoModule.cs
- XmlDocumentFieldSchema.cs
- StickyNoteHelper.cs
- TreeNodeBindingCollection.cs
- SqlNotificationEventArgs.cs
- DomainConstraint.cs
- AssociationType.cs