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
- XmlSchemaAttribute.cs
- FileIOPermission.cs
- ScaleTransform3D.cs
- ByteAnimationUsingKeyFrames.cs
- CredentialCache.cs
- EncryptedPackage.cs
- RoleGroup.cs
- SqlDependencyUtils.cs
- DesignerActionPropertyItem.cs
- Debug.cs
- FixedDocumentPaginator.cs
- DateTimePicker.cs
- InkSerializer.cs
- TrustLevelCollection.cs
- SqlInfoMessageEvent.cs
- DataListItemEventArgs.cs
- FocusWithinProperty.cs
- FunctionQuery.cs
- OleDbTransaction.cs
- EditingCommands.cs
- ImageIndexConverter.cs
- TemplatePagerField.cs
- securitymgrsite.cs
- RecognizerInfo.cs
- AutomationAttributeInfo.cs
- DataRow.cs
- HostElement.cs
- Bidi.cs
- XmlUnspecifiedAttribute.cs
- ToolBarButton.cs
- TaskHelper.cs
- RegexTree.cs
- RawStylusInputReport.cs
- StorageConditionPropertyMapping.cs
- DrawingVisualDrawingContext.cs
- FastPropertyAccessor.cs
- PeerName.cs
- ComponentCommands.cs
- FacetDescription.cs
- QueryContext.cs
- XamlToRtfWriter.cs
- PersonalizationStateQuery.cs
- CompositeFontFamily.cs
- GridSplitter.cs
- FrameworkContextData.cs
- TraceEventCache.cs
- Quad.cs
- HostingEnvironmentException.cs
- DeclarativeCatalogPartDesigner.cs
- CompilerErrorCollection.cs
- EventEntry.cs
- HashSetDebugView.cs
- QuestionEventArgs.cs
- TextBoxLine.cs
- BitArray.cs
- DBSchemaTable.cs
- OperationInfo.cs
- XPathNavigatorKeyComparer.cs
- ExtenderProvidedPropertyAttribute.cs
- ValidatingPropertiesEventArgs.cs
- MasterPageCodeDomTreeGenerator.cs
- Visitor.cs
- QilList.cs
- WindowsAltTab.cs
- IndexedGlyphRun.cs
- XamlSerializerUtil.cs
- Site.cs
- DeviceContexts.cs
- SqlXmlStorage.cs
- LOSFormatter.cs
- CultureSpecificCharacterBufferRange.cs
- BatchWriter.cs
- x509utils.cs
- AsymmetricKeyExchangeDeformatter.cs
- COM2ExtendedUITypeEditor.cs
- Native.cs
- PageCatalogPart.cs
- ComplexPropertyEntry.cs
- GenericEnumConverter.cs
- MonitoringDescriptionAttribute.cs
- DataGridViewLinkCell.cs
- ConversionValidationRule.cs
- MasterPage.cs
- WSSecurityPolicy12.cs
- NamespaceCollection.cs
- DataSourceControl.cs
- PropertyEntry.cs
- MobilePage.cs
- TypeResolvingOptions.cs
- GrammarBuilderRuleRef.cs
- PasswordTextContainer.cs
- BookmarkUndoUnit.cs
- BooleanSwitch.cs
- WarningException.cs
- ExpressionBindingCollection.cs
- TraceHandlerErrorFormatter.cs
- ForEachAction.cs
- CollectionViewGroupRoot.cs
- ScrollBarAutomationPeer.cs
- AppModelKnownContentFactory.cs