Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- StylusCollection.cs
- ThousandthOfEmRealDoubles.cs
- ZipIOModeEnforcingStream.cs
- VectorAnimation.cs
- ObjectMemberMapping.cs
- RoutedCommand.cs
- TrackingWorkflowEventArgs.cs
- OdbcConnectionOpen.cs
- NavigationEventArgs.cs
- WebPartsSection.cs
- CaseInsensitiveComparer.cs
- GlyphManager.cs
- LabelAutomationPeer.cs
- DataServiceException.cs
- MarkupExtensionReturnTypeAttribute.cs
- HMACSHA512.cs
- ProgressiveCrcCalculatingStream.cs
- ServiceHostFactory.cs
- XamlUtilities.cs
- VectorAnimation.cs
- MessageLoggingElement.cs
- XmlTextWriter.cs
- RemoteWebConfigurationHostServer.cs
- sqlpipe.cs
- MsmqInputSessionChannelListener.cs
- IsolatedStorageFile.cs
- ConstNode.cs
- ValidationSummary.cs
- KeyManager.cs
- SqlTriggerAttribute.cs
- DelayedRegex.cs
- OutputScopeManager.cs
- HandleRef.cs
- DesignerEditorPartChrome.cs
- PermissionAttributes.cs
- HttpResponseHeader.cs
- WebPartsPersonalization.cs
- EntityContainerAssociationSet.cs
- StorageMappingItemLoader.cs
- ColorMatrix.cs
- QuaternionValueSerializer.cs
- FactoryMaker.cs
- SafeNativeMethods.cs
- AccessText.cs
- TemplateBindingExtensionConverter.cs
- NameSpaceExtractor.cs
- XmlReaderDelegator.cs
- DataSourceHelper.cs
- IntSecurity.cs
- DataBoundControlHelper.cs
- NativeObjectSecurity.cs
- UriTemplateEquivalenceComparer.cs
- DBSchemaTable.cs
- LogExtent.cs
- XPathNodeIterator.cs
- XamlSerializerUtil.cs
- XmlUtil.cs
- BaseInfoTable.cs
- AssemblyCache.cs
- MenuAdapter.cs
- Encoder.cs
- JulianCalendar.cs
- HwndSourceKeyboardInputSite.cs
- Convert.cs
- TextBoxView.cs
- QilInvokeLateBound.cs
- ControlBuilderAttribute.cs
- ArrayConverter.cs
- SqlIdentifier.cs
- SerializationException.cs
- AssemblyCollection.cs
- COM2FontConverter.cs
- TypeDescriptionProvider.cs
- APCustomTypeDescriptor.cs
- BrowserTree.cs
- NetworkInformationPermission.cs
- DialogDivider.cs
- HttpProcessUtility.cs
- FileIOPermission.cs
- ApplicationFileParser.cs
- WorkflowWebService.cs
- Helpers.cs
- LinkedDataMemberFieldEditor.cs
- NetDataContractSerializer.cs
- FreezableCollection.cs
- CacheMemory.cs
- Animatable.cs
- TextHintingModeValidation.cs
- XPathNodeIterator.cs
- QilTernary.cs
- FixedSOMPageElement.cs
- XmlTypeMapping.cs
- PrintPageEvent.cs
- HttpResponseInternalWrapper.cs
- SapiInterop.cs
- Slider.cs
- HierarchicalDataTemplate.cs
- KnownTypesProvider.cs
- FixedPageProcessor.cs
- IConvertible.cs