Code:
/ 4.0 / 4.0 / 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. //---------------------------------------------------------------------------- // // // 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
- SchemaDeclBase.cs
- DataControlFieldCell.cs
- CultureSpecificStringDictionary.cs
- StatusBarDrawItemEvent.cs
- CapacityStreamGeometryContext.cs
- MetricEntry.cs
- UnionCodeGroup.cs
- ModelItemImpl.cs
- Triangle.cs
- HtmlContainerControl.cs
- ListViewEditEventArgs.cs
- NetCodeGroup.cs
- Ticks.cs
- DrawListViewSubItemEventArgs.cs
- DotAtomReader.cs
- EncryptedKeyIdentifierClause.cs
- QilStrConcat.cs
- Point4D.cs
- HttpWebResponse.cs
- PageClientProxyGenerator.cs
- AuthStoreRoleProvider.cs
- AsymmetricKeyExchangeFormatter.cs
- TraceContextRecord.cs
- SrgsGrammarCompiler.cs
- EditorZoneBase.cs
- SerialErrors.cs
- SourceElementsCollection.cs
- BuildResultCache.cs
- LabelAutomationPeer.cs
- TreeIterators.cs
- SignatureToken.cs
- HijriCalendar.cs
- StorageScalarPropertyMapping.cs
- WindowsButton.cs
- ElementUtil.cs
- CompositionDesigner.cs
- SequenceNumber.cs
- ReadContentAsBinaryHelper.cs
- CounterSampleCalculator.cs
- NumericUpDownAccelerationCollection.cs
- SizeChangedEventArgs.cs
- XmlElement.cs
- AuthenticationServiceManager.cs
- WindowsStatusBar.cs
- UserControl.cs
- XPathNode.cs
- ListViewSortEventArgs.cs
- LoginCancelEventArgs.cs
- BrowsableAttribute.cs
- Rect.cs
- Int32Storage.cs
- WebContext.cs
- _Win32.cs
- TransformBlockRequest.cs
- ProjectionCamera.cs
- SmtpMail.cs
- SrgsDocumentParser.cs
- ToolStripPanel.cs
- XmlEventCache.cs
- CfgArc.cs
- BamlRecords.cs
- LambdaCompiler.Address.cs
- FlowDocumentPaginator.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- AttributeUsageAttribute.cs
- Literal.cs
- MergePropertyDescriptor.cs
- CalendarDataBindingHandler.cs
- SectionUpdates.cs
- SByte.cs
- PropertyGridEditorPart.cs
- GetUserPreferenceRequest.cs
- RemotingSurrogateSelector.cs
- DataViewManager.cs
- DynamicDataRoute.cs
- LinearGradientBrush.cs
- XmlSchemaValidator.cs
- Padding.cs
- HtmlInputButton.cs
- ContextStaticAttribute.cs
- LicenseProviderAttribute.cs
- HMACRIPEMD160.cs
- ClientEndpointLoader.cs
- DataReceivedEventArgs.cs
- ZipIOLocalFileBlock.cs
- ArgIterator.cs
- UrlRoutingModule.cs
- Transactions.cs
- OdbcPermission.cs
- ErrorWebPart.cs
- SmtpException.cs
- FilterQuery.cs
- CellConstant.cs
- LogReservationCollection.cs
- ProcessHost.cs
- WebServiceBindingAttribute.cs
- ImageAutomationPeer.cs
- MessageDecoder.cs
- Propagator.JoinPropagator.cs
- TimeoutValidationAttribute.cs