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
- TypeTypeConverter.cs
- TransformerInfoCollection.cs
- EntityContainer.cs
- EntityContainerRelationshipSetEnd.cs
- ControlUtil.cs
- SqlDataSourceCache.cs
- GenerateHelper.cs
- EditorPartDesigner.cs
- DoubleLinkList.cs
- ArgIterator.cs
- ProxyAssemblyNotLoadedException.cs
- ValidatorCompatibilityHelper.cs
- MediaElementAutomationPeer.cs
- UnionCodeGroup.cs
- ToolZone.cs
- DoubleKeyFrameCollection.cs
- Operand.cs
- TreeNodeSelectionProcessor.cs
- COM2PictureConverter.cs
- TableLayout.cs
- TextControlDesigner.cs
- FactoryMaker.cs
- XmlArrayItemAttributes.cs
- PhonemeConverter.cs
- HtmlTableRow.cs
- RenderCapability.cs
- BindingsSection.cs
- DataColumnChangeEvent.cs
- DayRenderEvent.cs
- EndPoint.cs
- SiteMapDataSource.cs
- Directory.cs
- TypedAsyncResult.cs
- ApplicationManager.cs
- Empty.cs
- LinqDataSource.cs
- ActivityCodeDomReferenceService.cs
- Misc.cs
- OdbcConnectionHandle.cs
- XmlSerializationGeneratedCode.cs
- RootContext.cs
- HeaderedItemsControl.cs
- BezierSegment.cs
- ObjectDataSourceView.cs
- DBSqlParserTableCollection.cs
- TextPointerBase.cs
- SQLByte.cs
- _ScatterGatherBuffers.cs
- InputReferenceExpression.cs
- DataBoundControlHelper.cs
- KeyValuePairs.cs
- SafeReadContext.cs
- ParameterCollection.cs
- CommandLibraryHelper.cs
- AVElementHelper.cs
- FamilyMapCollection.cs
- ConfigurationLocation.cs
- BitConverter.cs
- InternalConfigSettingsFactory.cs
- WebPartZoneBaseDesigner.cs
- HMACMD5.cs
- XmlAttributeCache.cs
- PairComparer.cs
- HighlightVisual.cs
- MultiAsyncResult.cs
- base64Transforms.cs
- FileUtil.cs
- LinearGradientBrush.cs
- LogicalTreeHelper.cs
- MatrixTransform3D.cs
- PlainXmlWriter.cs
- Number.cs
- BufferModeSettings.cs
- OracleLob.cs
- dataobject.cs
- Setter.cs
- MimeFormatter.cs
- DbConnectionPoolCounters.cs
- StrokeIntersection.cs
- WebSysDescriptionAttribute.cs
- SettingsBindableAttribute.cs
- _UriTypeConverter.cs
- CustomLineCap.cs
- SystemIPv4InterfaceProperties.cs
- ClonableStack.cs
- ApplicationInfo.cs
- KeyTimeConverter.cs
- LineSegment.cs
- Scene3D.cs
- BaseParagraph.cs
- Debugger.cs
- _WebProxyDataBuilder.cs
- ConfigurationManagerHelper.cs
- HttpGetServerProtocol.cs
- EntityDataSourceContainerNameItem.cs
- ComAdminInterfaces.cs
- DbDataAdapter.cs
- WebPartZoneBase.cs
- ReadOnlyDataSourceView.cs
- StorageInfo.cs