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
- UIElement3D.cs
- ListViewVirtualItemsSelectionRangeChangedEvent.cs
- SurrogateSelector.cs
- BrowserTree.cs
- VersionPair.cs
- SqlDataSourceSelectingEventArgs.cs
- GradientStopCollection.cs
- WsatAdminException.cs
- VirtualDirectoryMappingCollection.cs
- DBConnectionString.cs
- VectorCollectionConverter.cs
- KeyedHashAlgorithm.cs
- ToolStripMenuItemCodeDomSerializer.cs
- RSAPKCS1SignatureFormatter.cs
- ComponentDispatcherThread.cs
- IsolationInterop.cs
- ToolStripProgressBar.cs
- Switch.cs
- BeginSelectCardRequest.cs
- CellRelation.cs
- CodeBlockBuilder.cs
- State.cs
- ScriptReferenceEventArgs.cs
- DecimalMinMaxAggregationOperator.cs
- StandardRuntimeEnumValidator.cs
- CorrelationToken.cs
- ReferenceEqualityComparer.cs
- UrlUtility.cs
- Calendar.cs
- RelationshipEnd.cs
- ListViewInsertedEventArgs.cs
- EmptyReadOnlyDictionaryInternal.cs
- VectorCollectionValueSerializer.cs
- AnnotationStore.cs
- ContainerParaClient.cs
- GPStream.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- RequiredAttributeAttribute.cs
- OverflowException.cs
- WebPartCancelEventArgs.cs
- RootBuilder.cs
- DetailsViewUpdateEventArgs.cs
- SelectiveScrollingGrid.cs
- ResourceCodeDomSerializer.cs
- TypefaceMetricsCache.cs
- ErrorWrapper.cs
- XamlToRtfWriter.cs
- WebConfigurationHost.cs
- MenuEventArgs.cs
- WebReferenceOptions.cs
- Mapping.cs
- WebPartConnectVerb.cs
- HtmlInputRadioButton.cs
- HandlerBase.cs
- XmlSignatureProperties.cs
- UserControl.cs
- OracleConnectionString.cs
- XmlLoader.cs
- SmtpNtlmAuthenticationModule.cs
- HttpVersion.cs
- PreProcessInputEventArgs.cs
- XmlSchemaAttribute.cs
- linebase.cs
- Pointer.cs
- DBNull.cs
- UpDownEvent.cs
- TreeView.cs
- EntityContainerEntitySet.cs
- NodeCounter.cs
- SharedDp.cs
- SpecularMaterial.cs
- XmlExceptionHelper.cs
- FontWeights.cs
- RayMeshGeometry3DHitTestResult.cs
- ServerIdentity.cs
- SemanticValue.cs
- PreDigestedSignedInfo.cs
- SendKeys.cs
- ElementsClipboardData.cs
- VirtualDirectoryMapping.cs
- SpStreamWrapper.cs
- ContainerCodeDomSerializer.cs
- SizeIndependentAnimationStorage.cs
- CompilerCollection.cs
- StrongNamePublicKeyBlob.cs
- ConsoleCancelEventArgs.cs
- TableLayoutCellPaintEventArgs.cs
- BaseProcessProtocolHandler.cs
- SeekableMessageNavigator.cs
- Scanner.cs
- HttpListenerContext.cs
- TreeSet.cs
- FormParameter.cs
- WebPartUtil.cs
- CultureSpecificStringDictionary.cs
- EntityProviderServices.cs
- FormViewDeletedEventArgs.cs
- CompilerParameters.cs
- QueryStack.cs
- ManifestResourceInfo.cs