Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- GlobalizationAssembly.cs
- SystemIPGlobalStatistics.cs
- XmlIgnoreAttribute.cs
- CellNormalizer.cs
- KnownTypeAttribute.cs
- IMembershipProvider.cs
- SessionIDManager.cs
- MenuAdapter.cs
- EventSetterHandlerConverter.cs
- QueueProcessor.cs
- ToolStripContainer.cs
- DataRecordInfo.cs
- ReaderWriterLockSlim.cs
- BCLDebug.cs
- TextLineResult.cs
- Point3DCollection.cs
- GenericPrincipal.cs
- CodeCompiler.cs
- SizeF.cs
- EncoderFallback.cs
- MemberAssignmentAnalysis.cs
- NameObjectCollectionBase.cs
- TraversalRequest.cs
- SiteMapHierarchicalDataSourceView.cs
- WebPartUtil.cs
- EntitySqlQueryState.cs
- ConfigurationSchemaErrors.cs
- SystemDiagnosticsSection.cs
- TextView.cs
- Timeline.cs
- WebConfigurationManager.cs
- XPathDocument.cs
- SiteMapPath.cs
- BoundColumn.cs
- CompiledXpathExpr.cs
- ArraySortHelper.cs
- ListControl.cs
- ASCIIEncoding.cs
- EntitySqlQueryCacheEntry.cs
- ButtonAutomationPeer.cs
- NotificationContext.cs
- ListManagerBindingsCollection.cs
- SocketPermission.cs
- ButtonFlatAdapter.cs
- ADMembershipUser.cs
- DesignerForm.cs
- TextElementEnumerator.cs
- ISAPIRuntime.cs
- HtmlInputPassword.cs
- WindowsUserNameSecurityTokenAuthenticator.cs
- BaseValidatorDesigner.cs
- DataDesignUtil.cs
- CodeNamespace.cs
- CustomAttributeFormatException.cs
- SynchronizationLockException.cs
- BmpBitmapEncoder.cs
- ImportContext.cs
- TextControlDesigner.cs
- InternalUserCancelledException.cs
- itemelement.cs
- RichTextBoxDesigner.cs
- BufferedGraphics.cs
- Substitution.cs
- WbmpConverter.cs
- EnumBuilder.cs
- EntityDesignerDataSourceView.cs
- Size.cs
- MenuItemStyle.cs
- TagMapInfo.cs
- HttpApplicationFactory.cs
- AnnotationResource.cs
- InternalControlCollection.cs
- XPathMultyIterator.cs
- AutoGeneratedFieldProperties.cs
- EventMappingSettings.cs
- DocumentGridContextMenu.cs
- MetadataArtifactLoaderCompositeResource.cs
- DispatcherProcessingDisabled.cs
- ItemsPresenter.cs
- ThreadStartException.cs
- baseaxisquery.cs
- assemblycache.cs
- System.Data.OracleClient_BID.cs
- WmlValidatorAdapter.cs
- PassportIdentity.cs
- ExpressionBinding.cs
- RangeBase.cs
- OleDbWrapper.cs
- BindingWorker.cs
- NullRuntimeConfig.cs
- OutputCacheSettingsSection.cs
- SiteMapPath.cs
- CriticalFinalizerObject.cs
- WebException.cs
- DataMisalignedException.cs
- DynamicMetaObject.cs
- XmlSchemaSimpleContentExtension.cs
- Axis.cs
- DoubleLinkListEnumerator.cs
- CodeBlockBuilder.cs