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
- KeysConverter.cs
- DataSpaceManager.cs
- MarkupObject.cs
- PropertyValueChangedEvent.cs
- SchemaImporterExtension.cs
- StringFreezingAttribute.cs
- RawStylusActions.cs
- AmbientLight.cs
- OleStrCAMarshaler.cs
- SafeFileMappingHandle.cs
- FixedDocumentSequencePaginator.cs
- InvalidComObjectException.cs
- ConditionValidator.cs
- ItemCheckEvent.cs
- IPHostEntry.cs
- IPHostEntry.cs
- EditorBrowsableAttribute.cs
- BuildResult.cs
- PathData.cs
- KnownBoxes.cs
- MemoryPressure.cs
- LostFocusEventManager.cs
- WpfWebRequestHelper.cs
- StateManagedCollection.cs
- CannotUnloadAppDomainException.cs
- ModulesEntry.cs
- SqlReorderer.cs
- ProgressBarRenderer.cs
- SecurityChannel.cs
- RecipientInfo.cs
- PathParser.cs
- SqlDependencyListener.cs
- Bezier.cs
- EventManager.cs
- InfoCardRSAPKCS1SignatureFormatter.cs
- FontConverter.cs
- DataGridBoolColumn.cs
- LinqDataSourceEditData.cs
- URLString.cs
- FormViewDeletedEventArgs.cs
- XPathConvert.cs
- UpdateEventArgs.cs
- XslException.cs
- ModelService.cs
- QueueProcessor.cs
- XsltSettings.cs
- PolicyStatement.cs
- ReflectionUtil.cs
- MiniParameterInfo.cs
- SynchronizationLockException.cs
- DictionaryMarkupSerializer.cs
- UserControlParser.cs
- ImpersonationContext.cs
- ConnectivityStatus.cs
- Delegate.cs
- DocumentPageView.cs
- CustomAttribute.cs
- SchemaImporterExtensionsSection.cs
- AuthorizationContext.cs
- HttpSocketManager.cs
- SettingsSection.cs
- MetadataArtifactLoaderResource.cs
- JoinElimination.cs
- WindowsTokenRoleProvider.cs
- DynamicQueryableWrapper.cs
- XmlDataDocument.cs
- StateItem.cs
- CodeEntryPointMethod.cs
- SQLStringStorage.cs
- DataSourceSerializationException.cs
- MouseDevice.cs
- HijriCalendar.cs
- DiagnosticsConfigurationHandler.cs
- XpsS0ValidatingLoader.cs
- HostingEnvironmentSection.cs
- TypefaceMetricsCache.cs
- DesignerActionItemCollection.cs
- hwndwrapper.cs
- EmptyImpersonationContext.cs
- SchemaReference.cs
- SchemaDeclBase.cs
- DocumentApplication.cs
- MbpInfo.cs
- DesignColumn.cs
- WizardSideBarListControlItem.cs
- FixedElement.cs
- PhonemeEventArgs.cs
- JoinGraph.cs
- LinkAreaEditor.cs
- TabControlAutomationPeer.cs
- Operator.cs
- PrimitiveXmlSerializers.cs
- TextProviderWrapper.cs
- PersonalizationDictionary.cs
- TransactionFormatter.cs
- DataService.cs
- X509Certificate.cs
- PassportAuthentication.cs
- ProfileProvider.cs
- XmlWriter.cs