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
- WindowsProgressbar.cs
- NaturalLanguageHyphenator.cs
- QilCloneVisitor.cs
- MemberExpressionHelper.cs
- DataSourceCollectionBase.cs
- XamlVector3DCollectionSerializer.cs
- InputBuffer.cs
- DbReferenceCollection.cs
- WindowsProgressbar.cs
- VersionConverter.cs
- CultureSpecificCharacterBufferRange.cs
- SizeF.cs
- SqlDataSourceQueryEditorForm.cs
- DetailsView.cs
- LOSFormatter.cs
- ErrorWebPart.cs
- SecurityCapabilities.cs
- EdmProviderManifest.cs
- ProfileSettingsCollection.cs
- AdapterDictionary.cs
- RuntimeConfigLKG.cs
- GridViewPageEventArgs.cs
- DockingAttribute.cs
- ModulesEntry.cs
- StyleCollection.cs
- Size.cs
- LocationEnvironment.cs
- Size3DConverter.cs
- Clock.cs
- SoapConverter.cs
- XmlToDatasetMap.cs
- CookieProtection.cs
- ValuePattern.cs
- RootProfilePropertySettingsCollection.cs
- DPTypeDescriptorContext.cs
- ModelTreeManager.cs
- TreeNodeCollection.cs
- Walker.cs
- XmlAnyElementAttribute.cs
- PrintEvent.cs
- TextPointerBase.cs
- DrawingBrush.cs
- CustomAttribute.cs
- DataBoundControlParameterTarget.cs
- WinInetCache.cs
- NameGenerator.cs
- ObjectAnimationBase.cs
- ListChangedEventArgs.cs
- SqlInternalConnectionTds.cs
- PlatformNotSupportedException.cs
- PartialCachingControl.cs
- fixedPageContentExtractor.cs
- OperationPickerDialog.designer.cs
- TextRangeEditLists.cs
- invalidudtexception.cs
- StylusCollection.cs
- CodeIterationStatement.cs
- OleAutBinder.cs
- ExtendLockAsyncResult.cs
- LinqDataSourceEditData.cs
- CharAnimationUsingKeyFrames.cs
- _IPv6Address.cs
- BindingMemberInfo.cs
- RijndaelManagedTransform.cs
- BuildResultCache.cs
- Mapping.cs
- ReadOnlyCollection.cs
- TextTreeTextElementNode.cs
- TextEditorSelection.cs
- AutomationPeer.cs
- Help.cs
- DataGridViewComponentPropertyGridSite.cs
- MethodExpression.cs
- FlowDocumentReaderAutomationPeer.cs
- XmlSchemaAnyAttribute.cs
- FormsAuthenticationConfiguration.cs
- EncoderBestFitFallback.cs
- Visual3D.cs
- PointAnimationClockResource.cs
- OleDbParameter.cs
- SkinIDTypeConverter.cs
- Function.cs
- RecoverInstanceLocksCommand.cs
- NullableDecimalAverageAggregationOperator.cs
- BCryptSafeHandles.cs
- Tool.cs
- AuthorizationRuleCollection.cs
- ErrorInfoXmlDocument.cs
- NotificationContext.cs
- RealizationContext.cs
- SvcMapFileLoader.cs
- XmlReflectionImporter.cs
- AllowedAudienceUriElement.cs
- ValidationResult.cs
- ListBindingHelper.cs
- EventLogPermissionHolder.cs
- ThicknessAnimationBase.cs
- PagedDataSource.cs
- FunctionNode.cs
- UInt64.cs