Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / 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 : [....] - 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
- Point3DIndependentAnimationStorage.cs
- DesignerTransactionCloseEvent.cs
- DeploymentSection.cs
- mediapermission.cs
- AuthenticationModuleElement.cs
- MenuAutoFormat.cs
- ContextMenuStrip.cs
- UrlMappingCollection.cs
- BackoffTimeoutHelper.cs
- IisTraceListener.cs
- X509RecipientCertificateClientElement.cs
- CodeArrayCreateExpression.cs
- TypeHelper.cs
- OracleCommandBuilder.cs
- PriorityItem.cs
- RemoteWebConfigurationHost.cs
- _SafeNetHandles.cs
- DurationConverter.cs
- WebPartConnection.cs
- TreeNodeStyleCollection.cs
- HtmlSelect.cs
- CatalogPartChrome.cs
- QuaternionIndependentAnimationStorage.cs
- COM2EnumConverter.cs
- WorkflowServiceOperationListItem.cs
- XPathNavigatorReader.cs
- DataMemberConverter.cs
- complextypematerializer.cs
- AutomationProperties.cs
- FormViewPageEventArgs.cs
- ISFTagAndGuidCache.cs
- MgmtConfigurationRecord.cs
- MultipartIdentifier.cs
- ImageList.cs
- WindowsToolbarItemAsMenuItem.cs
- StyleCollectionEditor.cs
- ColumnTypeConverter.cs
- PolicyManager.cs
- ListBase.cs
- TiffBitmapDecoder.cs
- ToolStripActionList.cs
- FixedPageAutomationPeer.cs
- SoapFormatter.cs
- Utils.cs
- KeySpline.cs
- Interlocked.cs
- HttpInputStream.cs
- TTSEngineTypes.cs
- EncodingTable.cs
- DataTemplateSelector.cs
- ViewUtilities.cs
- NegationPusher.cs
- Section.cs
- ClientTargetCollection.cs
- MatrixAnimationBase.cs
- ISCIIEncoding.cs
- CodeGeneratorAttribute.cs
- DataGridViewRowPostPaintEventArgs.cs
- Pair.cs
- ClientTargetCollection.cs
- TreeChangeInfo.cs
- ProcessHostConfigUtils.cs
- CookielessData.cs
- MSAAWinEventWrap.cs
- CollectionBase.cs
- RandomNumberGenerator.cs
- PathGeometry.cs
- Rect3D.cs
- AsyncPostBackErrorEventArgs.cs
- Descriptor.cs
- SQLBytes.cs
- UnionCodeGroup.cs
- CompilerGlobalScopeAttribute.cs
- EmptyEnumerator.cs
- HtmlForm.cs
- QuaternionAnimation.cs
- RoleServiceManager.cs
- OracleParameter.cs
- Span.cs
- XmlSchemaSimpleContentExtension.cs
- ImagingCache.cs
- GeometryHitTestParameters.cs
- TextDecorations.cs
- TreeNodeStyleCollection.cs
- PropertyConverter.cs
- DbConnectionFactory.cs
- MetafileHeader.cs
- ToolCreatedEventArgs.cs
- BrowserInteropHelper.cs
- XslAst.cs
- UserControl.cs
- Substitution.cs
- CodeArgumentReferenceExpression.cs
- EventMap.cs
- AppDomainFactory.cs
- ImageBrush.cs
- Parameter.cs
- Models.cs
- ConfigDefinitionUpdates.cs
- RegisteredScript.cs