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
- EdgeModeValidation.cs
- X509SecurityToken.cs
- GenericAuthenticationEventArgs.cs
- TextRange.cs
- DirectionalLight.cs
- StringBuilder.cs
- DelegatingTypeDescriptionProvider.cs
- ListViewGroup.cs
- SiteOfOriginPart.cs
- ObjectTag.cs
- ItemsControl.cs
- AsymmetricAlgorithm.cs
- TrustSection.cs
- XPathParser.cs
- WCFServiceClientProxyGenerator.cs
- ZipIORawDataFileBlock.cs
- MobileControlsSection.cs
- SafeNativeMethods.cs
- _NestedSingleAsyncResult.cs
- SchemaManager.cs
- DataTableReaderListener.cs
- Pkcs7Signer.cs
- SqlDataReader.cs
- PlainXmlDeserializer.cs
- Zone.cs
- Vector3DAnimation.cs
- CatalogPartCollection.cs
- LinkedResourceCollection.cs
- TrustManagerMoreInformation.cs
- JournalEntryListConverter.cs
- DataConnectionHelper.cs
- StylusPointProperties.cs
- SerialPort.cs
- DocumentPage.cs
- WebPartChrome.cs
- Line.cs
- GlobalizationSection.cs
- TypeDescriptor.cs
- PropertyPath.cs
- InstanceStore.cs
- PrintDialogException.cs
- CodeVariableReferenceExpression.cs
- DependencyObject.cs
- RuntimeCompatibilityAttribute.cs
- PersonalizationStateQuery.cs
- WindowsFormsEditorServiceHelper.cs
- SelectionItemPattern.cs
- PersonalizationStateQuery.cs
- SchemaAttDef.cs
- LocalizationComments.cs
- GeneratedContractType.cs
- UserPreferenceChangedEventArgs.cs
- WorkerRequest.cs
- InterleavedZipPartStream.cs
- HttpBindingExtension.cs
- TranslateTransform.cs
- ProviderSettingsCollection.cs
- WizardPanel.cs
- XhtmlTextWriter.cs
- PasswordValidationException.cs
- DataListCommandEventArgs.cs
- QueryExpression.cs
- ExpandableObjectConverter.cs
- CalculatedColumn.cs
- ValidationErrorEventArgs.cs
- FontStretches.cs
- Evidence.cs
- Activity.cs
- XmlDeclaration.cs
- URLIdentityPermission.cs
- ConvertTextFrag.cs
- DBSqlParserTable.cs
- ConstraintCollection.cs
- IItemProperties.cs
- SqlDataRecord.cs
- GridViewCellAutomationPeer.cs
- Run.cs
- SecurityTokenParameters.cs
- Material.cs
- TaskForm.cs
- AtomEntry.cs
- Msec.cs
- TypedElement.cs
- AssemblyFilter.cs
- StorageInfo.cs
- SetIndexBinder.cs
- RemotingConfiguration.cs
- TransformerTypeCollection.cs
- Attribute.cs
- ListViewItemSelectionChangedEvent.cs
- SplitterPanel.cs
- SetMemberBinder.cs
- DelegatingConfigHost.cs
- ScrollViewer.cs
- SolidBrush.cs
- RuleConditionDialog.Designer.cs
- AbandonedMutexException.cs
- sqlinternaltransaction.cs
- WebPartPersonalization.cs
- HyperLinkColumn.cs