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
- TargetConverter.cs
- XmlCountingReader.cs
- ProcessInfo.cs
- EpmSourceTree.cs
- Rights.cs
- DbConnectionStringBuilder.cs
- CultureMapper.cs
- TransactedBatchingBehavior.cs
- ArraySubsetEnumerator.cs
- LongTypeConverter.cs
- IDQuery.cs
- ImageMap.cs
- InfoCardRSAPKCS1SignatureFormatter.cs
- DataBindingHandlerAttribute.cs
- PropertyRecord.cs
- XmlSerializationReader.cs
- OleDbReferenceCollection.cs
- MediaTimeline.cs
- DragCompletedEventArgs.cs
- MouseOverProperty.cs
- DataTableExtensions.cs
- Soap.cs
- SAPIEngineTypes.cs
- ZipIOModeEnforcingStream.cs
- PageCatalogPart.cs
- Delegate.cs
- XmlSchemaSimpleType.cs
- InputLanguageEventArgs.cs
- InvalidFilterCriteriaException.cs
- DirectoryNotFoundException.cs
- OdbcErrorCollection.cs
- PasswordDeriveBytes.cs
- DesignerView.cs
- SimpleApplicationHost.cs
- SharedPersonalizationStateInfo.cs
- ClientSideProviderDescription.cs
- DoubleIndependentAnimationStorage.cs
- TextRangeEditLists.cs
- ObjectMemberMapping.cs
- TextElementCollectionHelper.cs
- DataGridrowEditEndingEventArgs.cs
- WebBrowserSiteBase.cs
- BamlBinaryReader.cs
- LinqDataSourceDeleteEventArgs.cs
- TimeIntervalCollection.cs
- ColumnResult.cs
- SHA1Managed.cs
- ColorIndependentAnimationStorage.cs
- SynchronizedInputAdaptor.cs
- UrlPropertyAttribute.cs
- TrustSection.cs
- HwndHost.cs
- PathParser.cs
- ClientTargetCollection.cs
- ResourceAttributes.cs
- Convert.cs
- Drawing.cs
- SqlServer2KCompatibilityCheck.cs
- SparseMemoryStream.cs
- BaseTemplateBuildProvider.cs
- EntityContainerAssociationSet.cs
- PropertyGridEditorPart.cs
- ScanQueryOperator.cs
- DbParameterCollectionHelper.cs
- WebContext.cs
- EntityDesignerUtils.cs
- LicenseProviderAttribute.cs
- streamingZipPartStream.cs
- SQLGuidStorage.cs
- DataGridViewColumnCollection.cs
- ObjectDataSourceMethodEventArgs.cs
- SQLDoubleStorage.cs
- AnnotationDocumentPaginator.cs
- PublisherIdentityPermission.cs
- CompositionTarget.cs
- DataGridViewColumnCollection.cs
- HtmlControlPersistable.cs
- AlphabeticalEnumConverter.cs
- MonthChangedEventArgs.cs
- StickyNoteAnnotations.cs
- SimplePropertyEntry.cs
- CodeGeneratorAttribute.cs
- DataGridView.cs
- PagePropertiesChangingEventArgs.cs
- EncryptedData.cs
- ListenerElementsCollection.cs
- DocumentPageViewAutomationPeer.cs
- SplineKeyFrames.cs
- SqlConnection.cs
- MasterPageParser.cs
- AmbiguousMatchException.cs
- ButtonAutomationPeer.cs
- XmlUtf8RawTextWriter.cs
- KeyInterop.cs
- BooleanSwitch.cs
- TextRangeAdaptor.cs
- TagNameToTypeMapper.cs
- BehaviorDragDropEventArgs.cs
- TextWriter.cs
- NetworkCredential.cs