Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Framework / MS / Internal / Annotations / AnnotationResourceCollection.cs / 1 / 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
- QilLiteral.cs
- WebConfigurationHost.cs
- AssemblyCache.cs
- PageContentCollection.cs
- SizeChangedEventArgs.cs
- LayoutEngine.cs
- SecurityTokenAttachmentMode.cs
- TextEndOfParagraph.cs
- DataGridViewRowsAddedEventArgs.cs
- DictionaryKeyPropertyAttribute.cs
- SvcMapFile.cs
- XmlCDATASection.cs
- DefaultBindingPropertyAttribute.cs
- AsyncResult.cs
- OrderedHashRepartitionStream.cs
- ExtenderProvidedPropertyAttribute.cs
- LocalizationComments.cs
- XamlTypeMapper.cs
- SessionStateModule.cs
- Viewport2DVisual3D.cs
- ArglessEventHandlerProxy.cs
- LoadWorkflowByInstanceKeyCommand.cs
- ItemContainerGenerator.cs
- TemplateEditingVerb.cs
- RequestCacheValidator.cs
- MatrixUtil.cs
- FixedSOMFixedBlock.cs
- DataGridViewElement.cs
- SQLRoleProvider.cs
- TypefaceCollection.cs
- TraceRecord.cs
- COM2Enum.cs
- DecimalAnimationBase.cs
- DataProtection.cs
- ResourceDisplayNameAttribute.cs
- AuditLog.cs
- DBCommandBuilder.cs
- WebPartExportVerb.cs
- PopupEventArgs.cs
- WindowsButton.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- ControlCachePolicy.cs
- XPathDescendantIterator.cs
- ColorConvertedBitmap.cs
- DockPanel.cs
- DataGridViewRowStateChangedEventArgs.cs
- BitmapSourceSafeMILHandle.cs
- _CookieModule.cs
- GeneratedView.cs
- WebDisplayNameAttribute.cs
- SynchronizationContext.cs
- ListViewInsertEventArgs.cs
- UnauthorizedWebPart.cs
- WebServiceEnumData.cs
- HostingPreferredMapPath.cs
- Stack.cs
- SqlInternalConnection.cs
- Timer.cs
- CodeTypeReferenceCollection.cs
- PrintingPermission.cs
- DispatchWrapper.cs
- DataGridViewRowCancelEventArgs.cs
- PopupControlService.cs
- PrefixQName.cs
- CategoryAttribute.cs
- LocalFileSettingsProvider.cs
- ImageDrawing.cs
- ToolStripOverflow.cs
- LinqDataSourceStatusEventArgs.cs
- ConfigurationPropertyCollection.cs
- RecordBuilder.cs
- GroupBoxAutomationPeer.cs
- SQLString.cs
- ProfileService.cs
- AsyncInvokeContext.cs
- SystemIPv4InterfaceProperties.cs
- XsdDataContractExporter.cs
- BufferedWebEventProvider.cs
- WindowsAuthenticationModule.cs
- AnnotationAdorner.cs
- ScriptingRoleServiceSection.cs
- ToolStripSplitStackLayout.cs
- BinaryReader.cs
- FormsAuthenticationEventArgs.cs
- OrderedHashRepartitionStream.cs
- HitTestResult.cs
- BamlReader.cs
- SectionInput.cs
- GrammarBuilderRuleRef.cs
- MimeFormImporter.cs
- Conditional.cs
- GeneralTransform3DGroup.cs
- TextParentUndoUnit.cs
- FontWeightConverter.cs
- GcHandle.cs
- TableParagraph.cs
- LocatorManager.cs
- CroppedBitmap.cs
- DBConcurrencyException.cs
- elementinformation.cs