Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SqlBulkCopy.cs
- Decimal.cs
- WebBrowserPermission.cs
- CodeCommentStatement.cs
- FixedElement.cs
- SqlConnectionManager.cs
- ManagementOperationWatcher.cs
- MenuRendererClassic.cs
- ControlPaint.cs
- DesignerAdapterUtil.cs
- GroupBoxRenderer.cs
- FormViewPagerRow.cs
- Gdiplus.cs
- RuleSettings.cs
- FieldAccessException.cs
- ComPersistableTypeElementCollection.cs
- EntityDataSourceEntitySetNameItem.cs
- _AcceptOverlappedAsyncResult.cs
- GroupBox.cs
- RequestResizeEvent.cs
- BaseResourcesBuildProvider.cs
- DataRowCollection.cs
- BindingList.cs
- LineSegment.cs
- FixedTextView.cs
- CodeSubDirectoriesCollection.cs
- StylusTouchDevice.cs
- Transform3D.cs
- OleDbParameterCollection.cs
- SqlNodeAnnotations.cs
- FixedSOMImage.cs
- ContractHandle.cs
- CornerRadius.cs
- followingquery.cs
- XsltInput.cs
- OLEDB_Enum.cs
- TimeoutValidationAttribute.cs
- Peer.cs
- ValidationErrorEventArgs.cs
- _ProxyChain.cs
- EndpointAddressElementBase.cs
- ArrangedElement.cs
- XamlStyleSerializer.cs
- DataSetSchema.cs
- XPathDocument.cs
- SafeEventLogReadHandle.cs
- IdSpace.cs
- ObjectNotFoundException.cs
- EmptyStringExpandableObjectConverter.cs
- ExitEventArgs.cs
- ProviderSettings.cs
- SessionChannels.cs
- SerializerDescriptor.cs
- Errors.cs
- ExtentJoinTreeNode.cs
- CannotUnloadAppDomainException.cs
- ScrollViewer.cs
- ScrollBar.cs
- CustomTrackingQuery.cs
- ParallelDesigner.cs
- KoreanLunisolarCalendar.cs
- PropertyTabAttribute.cs
- IPEndPointCollection.cs
- TableStyle.cs
- WindowPattern.cs
- AbsoluteQuery.cs
- CriticalExceptions.cs
- SqlInternalConnectionTds.cs
- CodeConstructor.cs
- IndentedWriter.cs
- ColumnWidthChangingEvent.cs
- SqlDataReader.cs
- EntityContainerRelationshipSetEnd.cs
- ProtocolProfile.cs
- SQLCharsStorage.cs
- CodeTypeDelegate.cs
- ListViewTableCell.cs
- GeometryValueSerializer.cs
- TemplateKeyConverter.cs
- Line.cs
- TypeLibConverter.cs
- _AuthenticationState.cs
- ColorAnimation.cs
- UnsafeNativeMethods.cs
- SortKey.cs
- BulletedListEventArgs.cs
- MultiTargetingUtil.cs
- TextParaLineResult.cs
- BitmapEffectDrawingContextWalker.cs
- DesignerInterfaces.cs
- SamlAttribute.cs
- XmlDataSourceDesigner.cs
- Propagator.cs
- SAPIEngineTypes.cs
- TcpTransportSecurity.cs
- Matrix.cs
- SafeMemoryMappedViewHandle.cs
- ExtendedTransformFactory.cs
- NameTable.cs
- AddInProcess.cs