Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- InvokePatternIdentifiers.cs
- KerberosTokenFactoryCredential.cs
- ValueType.cs
- TextBoxBase.cs
- DataSource.cs
- WindowPattern.cs
- XmlSchemaComplexContentExtension.cs
- PersonalizationProvider.cs
- SafeArrayRankMismatchException.cs
- DictionaryCustomTypeDescriptor.cs
- VarInfo.cs
- DataGridRowAutomationPeer.cs
- ScriptReference.cs
- BitmapEffectState.cs
- AddInEnvironment.cs
- InfocardClientCredentials.cs
- Point4D.cs
- ContentPlaceHolder.cs
- ContextStaticAttribute.cs
- MetadataException.cs
- PersonalizationProviderCollection.cs
- ContextStack.cs
- CompoundFileIOPermission.cs
- DataGridViewRowCancelEventArgs.cs
- XPathScanner.cs
- StrokeNodeData.cs
- ConditionedDesigner.cs
- Mapping.cs
- DiagnosticTrace.cs
- ModelFunction.cs
- ConfigurationValue.cs
- SQLBytes.cs
- ToolStripStatusLabel.cs
- PathNode.cs
- ValidationPropertyAttribute.cs
- PrintPreviewGraphics.cs
- GridLengthConverter.cs
- ExistsInCollection.cs
- InkPresenterAutomationPeer.cs
- TreeViewItemAutomationPeer.cs
- LicenseManager.cs
- ParallelTimeline.cs
- XhtmlTextWriter.cs
- NonClientArea.cs
- OpCodes.cs
- XmlSchemaAny.cs
- Authorization.cs
- UserControlFileEditor.cs
- ContractHandle.cs
- BuildResult.cs
- XmlnsCache.cs
- Utils.cs
- MDIClient.cs
- ObjectListField.cs
- SharedUtils.cs
- XmlSchemaComplexContentExtension.cs
- NetworkStream.cs
- AccessedThroughPropertyAttribute.cs
- CompilerWrapper.cs
- Vector3DCollection.cs
- QueryOptionExpression.cs
- WrappedKeySecurityToken.cs
- _NetRes.cs
- CheckBoxPopupAdapter.cs
- SQLRoleProvider.cs
- cookieexception.cs
- PropertyGridEditorPart.cs
- XmlSchemaCompilationSettings.cs
- ClosableStream.cs
- Size3DValueSerializer.cs
- ProfileGroupSettingsCollection.cs
- HttpContext.cs
- StylusPlugInCollection.cs
- SafeFindHandle.cs
- PolyQuadraticBezierSegment.cs
- DocumentPageTextView.cs
- BaseCodePageEncoding.cs
- CommandField.cs
- HttpSocketManager.cs
- StringAnimationUsingKeyFrames.cs
- SchemaElementLookUpTable.cs
- UpdateCommand.cs
- ModelService.cs
- WebBrowserUriTypeConverter.cs
- ValueProviderWrapper.cs
- HttpClientChannel.cs
- PenContexts.cs
- CapabilitiesPattern.cs
- AnnotationService.cs
- ChannelBase.cs
- odbcmetadatacolumnnames.cs
- CoreSwitches.cs
- HtmlInputCheckBox.cs
- SystemResourceHost.cs
- IconBitmapDecoder.cs
- TableColumn.cs
- TargetException.cs
- ValidationErrorEventArgs.cs
- Tokenizer.cs
- ClosureBinding.cs