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
- ZipIOFileItemStream.cs
- Message.cs
- ListBox.cs
- ToolStripTextBox.cs
- FixedFlowMap.cs
- XmlSigningNodeWriter.cs
- ActiveDesignSurfaceEvent.cs
- Compilation.cs
- EllipseGeometry.cs
- TreeViewEvent.cs
- SimpleHandlerBuildProvider.cs
- CharacterBufferReference.cs
- ToolCreatedEventArgs.cs
- ProxyWebPart.cs
- FileLevelControlBuilderAttribute.cs
- HttpFileCollectionBase.cs
- ImageInfo.cs
- MetadataUtil.cs
- DataGridViewSelectedRowCollection.cs
- XmlBinaryReader.cs
- _OSSOCK.cs
- ReferenceEqualityComparer.cs
- InitializerFacet.cs
- ContentWrapperAttribute.cs
- BoolExpression.cs
- DefaultBindingPropertyAttribute.cs
- M3DUtil.cs
- IntegerValidator.cs
- BooleanProjectedSlot.cs
- XsltLibrary.cs
- PartialCachingAttribute.cs
- GlyphInfoList.cs
- ReadOnlyDictionary.cs
- GeometryValueSerializer.cs
- ProcessRequestArgs.cs
- DataMisalignedException.cs
- MoveSizeWinEventHandler.cs
- ArglessEventHandlerProxy.cs
- UserControlBuildProvider.cs
- CngKeyBlobFormat.cs
- ArrayElementGridEntry.cs
- Stopwatch.cs
- RouteValueDictionary.cs
- MessageBodyMemberAttribute.cs
- ModelProperty.cs
- ParameterModifier.cs
- SplayTreeNode.cs
- EventNotify.cs
- DataGridViewCellParsingEventArgs.cs
- SelectionItemPattern.cs
- X509CertificateCollection.cs
- SqlNotificationRequest.cs
- HttpClientCertificate.cs
- ProxyHwnd.cs
- AttachmentCollection.cs
- ExpressionReplacer.cs
- StringComparer.cs
- _ShellExpression.cs
- XAMLParseException.cs
- ToolStripMenuItemDesigner.cs
- MediaContext.cs
- Debug.cs
- BinHexDecoder.cs
- ConnectionManagementElement.cs
- TableCellCollection.cs
- HMAC.cs
- DataSetSchema.cs
- externdll.cs
- InvalidCastException.cs
- PropertyEmitter.cs
- MasterPageParser.cs
- BamlRecords.cs
- SoapIncludeAttribute.cs
- ContentPosition.cs
- ChooseAction.cs
- IdentifierService.cs
- EntryPointNotFoundException.cs
- CompilerInfo.cs
- DragStartedEventArgs.cs
- SiteIdentityPermission.cs
- ReflectTypeDescriptionProvider.cs
- MsmqIntegrationChannelListener.cs
- Transform3D.cs
- DynamicRouteExpression.cs
- DesignerPainter.cs
- TimeoutException.cs
- EndpointAddressElementBase.cs
- IndexerNameAttribute.cs
- SynchronizationContext.cs
- Crc32Helper.cs
- Nullable.cs
- latinshape.cs
- CodePropertyReferenceExpression.cs
- AddressingProperty.cs
- GroupBoxRenderer.cs
- XmlSchemaIdentityConstraint.cs
- PointHitTestResult.cs
- ClientScriptManager.cs
- WindowsToolbarAsMenu.cs
- APCustomTypeDescriptor.cs