Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- RectAnimationUsingKeyFrames.cs
- WrapPanel.cs
- Vector3DKeyFrameCollection.cs
- RadioButton.cs
- LicenseProviderAttribute.cs
- OdbcCommandBuilder.cs
- PolicyUnit.cs
- ProxyFragment.cs
- DerivedKeyCachingSecurityTokenSerializer.cs
- DataObjectFieldAttribute.cs
- GridView.cs
- RepeaterDataBoundAdapter.cs
- ListControl.cs
- StrongNamePublicKeyBlob.cs
- GACIdentityPermission.cs
- XmlIlGenerator.cs
- Configuration.cs
- WindowsListViewGroupHelper.cs
- CacheSection.cs
- cryptoapiTransform.cs
- WinEventHandler.cs
- MobileControlDesigner.cs
- CellLabel.cs
- InputMethod.cs
- WebScriptServiceHost.cs
- NotifyIcon.cs
- LinkDescriptor.cs
- StreamInfo.cs
- DomainConstraint.cs
- ExtractedStateEntry.cs
- XmlCharType.cs
- WebPartUtil.cs
- PaintEvent.cs
- WebRequestModulesSection.cs
- PropertiesTab.cs
- WindowsRichEdit.cs
- WindowsFormsHost.cs
- GridViewItemAutomationPeer.cs
- RightNameExpirationInfoPair.cs
- Exceptions.cs
- XmlSchemaType.cs
- ListBoxItem.cs
- WindowsGraphicsWrapper.cs
- SqlUtils.cs
- XmlQueryStaticData.cs
- ClientEventManager.cs
- MailAddress.cs
- FontFamily.cs
- MdImport.cs
- SimpleHandlerFactory.cs
- IntSecurity.cs
- ComponentDesigner.cs
- SecurityResources.cs
- DynamicObjectAccessor.cs
- ByteAnimationBase.cs
- EncoderFallback.cs
- PowerModeChangedEventArgs.cs
- PtsContext.cs
- TextBoxAutomationPeer.cs
- XdrBuilder.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- ErrorFormatter.cs
- PeerCollaboration.cs
- ZipIOFileItemStream.cs
- DesignTimeValidationFeature.cs
- ParameterCollection.cs
- UshortList2.cs
- CacheDependency.cs
- DataControlReferenceCollection.cs
- TraceUtils.cs
- SystemUdpStatistics.cs
- X509InitiatorCertificateServiceElement.cs
- LoggedException.cs
- ProxySimple.cs
- ApplicationException.cs
- AnimatedTypeHelpers.cs
- MessageDecoder.cs
- InputDevice.cs
- GridViewHeaderRowPresenterAutomationPeer.cs
- FontNamesConverter.cs
- UnsafeMethods.cs
- MenuEventArgs.cs
- ContextToken.cs
- NavigationPropertyEmitter.cs
- Array.cs
- ProviderException.cs
- ToolZone.cs
- QilGenerator.cs
- AvTraceDetails.cs
- CapabilitiesPattern.cs
- RTLAwareMessageBox.cs
- SchemaRegistration.cs
- ResourceManager.cs
- EmbeddedObject.cs
- PermissionSetTriple.cs
- ProfileBuildProvider.cs
- ContainsRowNumberChecker.cs
- TypeInfo.cs
- ServicePointManagerElement.cs
- AssemblyHelper.cs