Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- MethodExecutor.cs
- SourceItem.cs
- CapabilitiesState.cs
- LabelLiteral.cs
- KeyInfo.cs
- EmptyCollection.cs
- RootBrowserWindowAutomationPeer.cs
- SQLMoneyStorage.cs
- XmlQueryContext.cs
- TextTreeNode.cs
- XmlChildNodes.cs
- CommonDialog.cs
- Triplet.cs
- PropertyCollection.cs
- ToolStripSplitStackLayout.cs
- _ServiceNameStore.cs
- TransformerTypeCollection.cs
- _IPv4Address.cs
- CommandPlan.cs
- handlecollector.cs
- BidirectionalDictionary.cs
- VideoDrawing.cs
- ISFClipboardData.cs
- MaskPropertyEditor.cs
- DefaultPrintController.cs
- TableProviderWrapper.cs
- infer.cs
- TypedReference.cs
- Tag.cs
- RulePatternOps.cs
- BinaryWriter.cs
- PagerSettings.cs
- BufferedReadStream.cs
- EventHandlingScope.cs
- TemplateColumn.cs
- DrawListViewSubItemEventArgs.cs
- EntryWrittenEventArgs.cs
- EntityContainer.cs
- DoubleAnimationBase.cs
- XPathNodeList.cs
- AutoResetEvent.cs
- ContentValidator.cs
- MasterPageCodeDomTreeGenerator.cs
- TrackingConditionCollection.cs
- RotationValidation.cs
- ISFClipboardData.cs
- DesignerListAdapter.cs
- ComplusEndpointConfigContainer.cs
- PathParser.cs
- SystemResourceHost.cs
- ValidatingReaderNodeData.cs
- UniqueConstraint.cs
- Hash.cs
- Crc32Helper.cs
- FtpWebRequest.cs
- ServiceDescription.cs
- SqlXmlStorage.cs
- LinkedList.cs
- TextPointer.cs
- CorrelationTokenTypeConvertor.cs
- ConnectionPointCookie.cs
- ThreadInterruptedException.cs
- NavigationPropertyEmitter.cs
- IIS7WorkerRequest.cs
- DelegateSerializationHolder.cs
- CacheAxisQuery.cs
- OrderByQueryOptionExpression.cs
- EditorServiceContext.cs
- BehaviorEditorPart.cs
- linebase.cs
- Empty.cs
- BindingManagerDataErrorEventArgs.cs
- AsymmetricSignatureDeformatter.cs
- DefaultProxySection.cs
- StandardOleMarshalObject.cs
- HttpListenerResponse.cs
- LineServices.cs
- IIS7WorkerRequest.cs
- DesignerCommandAdapter.cs
- CurrentChangingEventManager.cs
- Point3DCollection.cs
- TriState.cs
- MediaElement.cs
- WsdlParser.cs
- Crc32Helper.cs
- ImpersonationContext.cs
- PeerNameRecord.cs
- EntityDataSourceChangingEventArgs.cs
- ClientEventManager.cs
- FixedTextSelectionProcessor.cs
- LZCodec.cs
- DrawingImage.cs
- IntegerValidatorAttribute.cs
- CopyAttributesAction.cs
- PageThemeCodeDomTreeGenerator.cs
- CellNormalizer.cs
- FontStretch.cs
- _BasicClient.cs
- DtrList.cs
- BrowsableAttribute.cs