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
- LinkedList.cs
- _AcceptOverlappedAsyncResult.cs
- CodeParameterDeclarationExpressionCollection.cs
- TreeNodeCollection.cs
- SubpageParaClient.cs
- Menu.cs
- WebRequestModuleElementCollection.cs
- Compiler.cs
- ACE.cs
- UdpDiscoveryEndpointProvider.cs
- NativeMethods.cs
- AttachInfo.cs
- DocumentViewerHelper.cs
- AcceleratedTokenProviderState.cs
- ContentIterators.cs
- SharedUtils.cs
- BitmapEffectOutputConnector.cs
- ImmComposition.cs
- WindowsListViewGroupSubsetLink.cs
- Site.cs
- ParserOptions.cs
- ExeConfigurationFileMap.cs
- SqlCrossApplyToCrossJoin.cs
- PathParser.cs
- SiteOfOriginPart.cs
- BitmapEffectvisualstate.cs
- DetailsViewDesigner.cs
- BitmapCodecInfo.cs
- ToolStripItemRenderEventArgs.cs
- ExpressionTextBox.xaml.cs
- FixedDocumentPaginator.cs
- Globals.cs
- EntityContainerRelationshipSet.cs
- NestPullup.cs
- DataDocumentXPathNavigator.cs
- ConversionValidationRule.cs
- MessageDecoder.cs
- NavigateEvent.cs
- Parameter.cs
- Menu.cs
- DiscoveryClientChannelBase.cs
- WorkerRequest.cs
- HiddenFieldPageStatePersister.cs
- ApplicationInterop.cs
- FixedSOMPageConstructor.cs
- AtlasWeb.Designer.cs
- Base64Stream.cs
- WebDescriptionAttribute.cs
- StructuredType.cs
- BlurEffect.cs
- CellQuery.cs
- LocatorManager.cs
- Timer.cs
- VisualTreeUtils.cs
- _RequestCacheProtocol.cs
- FormatConvertedBitmap.cs
- SQLMoneyStorage.cs
- SqlDataSourceCommandEventArgs.cs
- EventListener.cs
- thaishape.cs
- ConfigurationPermission.cs
- Columns.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- EmptyArray.cs
- InvalidDocumentContentsException.cs
- TaskScheduler.cs
- OleDbParameter.cs
- ControlUtil.cs
- XmlSchemaCompilationSettings.cs
- GenericTypeParameterBuilder.cs
- DoubleLinkListEnumerator.cs
- SamlSecurityToken.cs
- CrossSiteScriptingValidation.cs
- PlatformNotSupportedException.cs
- HostProtectionException.cs
- WebPartZoneCollection.cs
- DataTableClearEvent.cs
- CurrencyWrapper.cs
- DynamicILGenerator.cs
- CellRelation.cs
- PkcsMisc.cs
- Viewport2DVisual3D.cs
- ListViewAutomationPeer.cs
- Pipe.cs
- FileDialog_Vista.cs
- AddInServer.cs
- TemplatedWizardStep.cs
- SafeHandles.cs
- ExternalFile.cs
- BitmapSourceSafeMILHandle.cs
- SmtpFailedRecipientException.cs
- MappingMetadataHelper.cs
- TrustManager.cs
- SchemaExporter.cs
- HandlerBase.cs
- RelOps.cs
- HostingPreferredMapPath.cs
- SettingsAttributeDictionary.cs
- Storyboard.cs
- XsltOutput.cs