Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- printdlgexmarshaler.cs
- HyperlinkAutomationPeer.cs
- RuntimeCompatibilityAttribute.cs
- FormatException.cs
- SmtpNetworkElement.cs
- DataGridViewBand.cs
- DetailsViewRow.cs
- DisableDpiAwarenessAttribute.cs
- CheckBoxPopupAdapter.cs
- AttributedMetaModel.cs
- SecurityHeaderTokenResolver.cs
- XPathDocumentIterator.cs
- SchemaImporter.cs
- SeekStoryboard.cs
- XmlSchemaImport.cs
- DnsCache.cs
- coordinator.cs
- RangeValidator.cs
- KeyGestureValueSerializer.cs
- XmlSchemaObjectTable.cs
- ApplicationBuildProvider.cs
- WarningException.cs
- PipelineModuleStepContainer.cs
- WebBaseEventKeyComparer.cs
- BooleanSwitch.cs
- ImageKeyConverter.cs
- ErrorTableItemStyle.cs
- _BufferOffsetSize.cs
- SendMailErrorEventArgs.cs
- WebPartCatalogAddVerb.cs
- ClientSideProviderDescription.cs
- SqlProvider.cs
- UserPersonalizationStateInfo.cs
- ASCIIEncoding.cs
- AnimationStorage.cs
- AttributeCollection.cs
- IFlowDocumentViewer.cs
- PrePostDescendentsWalker.cs
- ToolBarButtonDesigner.cs
- XmlSchemaComplexContent.cs
- WinFormsUtils.cs
- GeometryGroup.cs
- Convert.cs
- ParallelTimeline.cs
- CapacityStreamGeometryContext.cs
- RecognizerInfo.cs
- IsolatedStoragePermission.cs
- SrgsToken.cs
- RefreshPropertiesAttribute.cs
- ConfigurationManager.cs
- View.cs
- FrameAutomationPeer.cs
- PointAnimation.cs
- OledbConnectionStringbuilder.cs
- ActiveXHelper.cs
- SiteMapHierarchicalDataSourceView.cs
- IOThreadTimer.cs
- Point4DConverter.cs
- PointCollection.cs
- RawTextInputReport.cs
- SelectionPattern.cs
- DataGridViewRowPrePaintEventArgs.cs
- DeferredTextReference.cs
- EventLogEntryCollection.cs
- LinearKeyFrames.cs
- FixedSOMSemanticBox.cs
- BuildProviderCollection.cs
- BlockUIContainer.cs
- QueryIntervalOp.cs
- ObjectDisposedException.cs
- Expression.cs
- SqlProcedureAttribute.cs
- LoginName.cs
- GridViewCancelEditEventArgs.cs
- GroupedContextMenuStrip.cs
- Axis.cs
- XmlILIndex.cs
- RowParagraph.cs
- SemaphoreSecurity.cs
- SafeBitVector32.cs
- SQLConvert.cs
- StringPropertyBuilder.cs
- Range.cs
- Duration.cs
- DataGridColumnHeaderCollection.cs
- EmptyControlCollection.cs
- FastPropertyAccessor.cs
- UpdatePanel.cs
- ScrollChangedEventArgs.cs
- RtfNavigator.cs
- Trace.cs
- FormatException.cs
- SqlTriggerContext.cs
- ListViewItem.cs
- HtmlGenericControl.cs
- HttpCachePolicyElement.cs
- ChtmlImageAdapter.cs
- ThumbAutomationPeer.cs
- JsonCollectionDataContract.cs
- Processor.cs