Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- DecoratedNameAttribute.cs
- CellTreeNodeVisitors.cs
- XmlBufferedByteStreamReader.cs
- ItemsPanelTemplate.cs
- HostProtectionException.cs
- TcpClientCredentialType.cs
- ElementHostPropertyMap.cs
- Int16.cs
- WrappedIUnknown.cs
- XmlNode.cs
- ThreadPool.cs
- Internal.cs
- TextParentUndoUnit.cs
- ModelFunction.cs
- InternalMappingException.cs
- SharedPersonalizationStateInfo.cs
- storepermission.cs
- TextTreeInsertUndoUnit.cs
- SynchronousChannelMergeEnumerator.cs
- InkCanvas.cs
- Funcletizer.cs
- DropDownList.cs
- ToolStripCodeDomSerializer.cs
- GlyphRunDrawing.cs
- DataExpression.cs
- MatrixUtil.cs
- CqlIdentifiers.cs
- BitmapEffectOutputConnector.cs
- DataContext.cs
- GenericPrincipal.cs
- AttributeCallbackBuilder.cs
- SharedStatics.cs
- TextInfo.cs
- PersonalizationStateQuery.cs
- CellParaClient.cs
- CodeVariableReferenceExpression.cs
- Int16AnimationUsingKeyFrames.cs
- IntermediatePolicyValidator.cs
- _IPv6Address.cs
- CultureInfoConverter.cs
- mediaeventargs.cs
- InheritanceRules.cs
- HttpRuntime.cs
- PerformanceCounterCategory.cs
- ReferentialConstraint.cs
- ComponentEditorPage.cs
- HashMembershipCondition.cs
- TextWriterTraceListener.cs
- DataTableTypeConverter.cs
- System.Data_BID.cs
- ReadOnlyNameValueCollection.cs
- ErrorWebPart.cs
- MembershipUser.cs
- Animatable.cs
- DeferredTextReference.cs
- EncoderBestFitFallback.cs
- OdbcException.cs
- TypeNameConverter.cs
- _SslStream.cs
- DatagramAdapter.cs
- GraphicsState.cs
- IPPacketInformation.cs
- input.cs
- TemplateXamlParser.cs
- PolicyException.cs
- DataContractJsonSerializerOperationFormatter.cs
- ObjectNavigationPropertyMapping.cs
- StyleXamlTreeBuilder.cs
- PointCollectionConverter.cs
- TransactionInterop.cs
- DataGridTextBoxColumn.cs
- SQLMoney.cs
- RegionIterator.cs
- SubstitutionList.cs
- BindingElementCollection.cs
- ContainerFilterService.cs
- EmissiveMaterial.cs
- FileDetails.cs
- DocumentsTrace.cs
- FormsAuthenticationEventArgs.cs
- HttpDebugHandler.cs
- ArraySegment.cs
- XLinq.cs
- ServiceModelConfigurationElementCollection.cs
- DataServiceQuery.cs
- URLString.cs
- elementinformation.cs
- SqlNotificationRequest.cs
- DigitalSignatureProvider.cs
- StringExpressionSet.cs
- CollectionContainer.cs
- TemplateInstanceAttribute.cs
- TemporaryBitmapFile.cs
- FactoryId.cs
- ToolStripStatusLabel.cs
- OracleDataReader.cs
- ObjectDisposedException.cs
- SqlHelper.cs
- XPathCompiler.cs
- StorageEntitySetMapping.cs