Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Base / System / ComponentModel / SortDescriptionCollection.cs / 1 / SortDescriptionCollection.cs
//---------------------------------------------------------------------------- // //// Copyright (C) 2003 by Microsoft Corporation. All rights reserved. // // // // Description: dynamic collection of SortDescriptions // // See spec at [....]/connecteddata/Specs/CollectionView.mht // // History: // 03/24/2005 : [....] - created // //--------------------------------------------------------------------------- using System; using System.Collections; using System.Collections.ObjectModel; using System.Collections.Specialized; using System.Windows; using MS.Utility; namespace System.ComponentModel { ////// Implementation of a dynamic data collection of SortDescriptions. /// public class SortDescriptionCollection : Collection, INotifyCollectionChanged { //----------------------------------------------------- // // Public Events // //----------------------------------------------------- #region Public Events /// /// Occurs when the collection changes, either by adding or removing an item. /// ////// see event NotifyCollectionChangedEventHandler INotifyCollectionChanged.CollectionChanged { add { CollectionChanged += value; } remove { CollectionChanged -= value; } } ////// /// Occurs when the collection changes, either by adding or removing an item. /// protected event NotifyCollectionChangedEventHandler CollectionChanged; #endregion Public Events //------------------------------------------------------ // // Protected Methods // //----------------------------------------------------- #region Protected Methods ////// called by base class Collection<T> when the list is being cleared; /// raises a CollectionChanged event to any listeners /// protected override void ClearItems() { base.ClearItems(); OnCollectionChanged(NotifyCollectionChangedAction.Reset); } ////// called by base class Collection<T> when an item is removed from list; /// raises a CollectionChanged event to any listeners /// protected override void RemoveItem(int index) { SortDescription removedItem = this[index]; base.RemoveItem(index); OnCollectionChanged(NotifyCollectionChangedAction.Remove, removedItem, index); } ////// called by base class Collection<T> when an item is added to list; /// raises a CollectionChanged event to any listeners /// protected override void InsertItem(int index, SortDescription item) { item.Seal(); base.InsertItem(index, item); OnCollectionChanged(NotifyCollectionChangedAction.Add, item, index); } ////// called by base class Collection<T> when an item is set in the list; /// raises a CollectionChanged event to any listeners /// protected override void SetItem(int index, SortDescription item) { item.Seal(); SortDescription originalItem = this[index]; base.SetItem(index, item); OnCollectionChanged(NotifyCollectionChangedAction.Remove, originalItem, index); OnCollectionChanged(NotifyCollectionChangedAction.Add, item, index); } ////// raise CollectionChanged event to any listeners /// private void OnCollectionChanged(NotifyCollectionChangedAction action, object item, int index) { if (CollectionChanged != null) { CollectionChanged(this, new NotifyCollectionChangedEventArgs(action, item, index)); } } // raise CollectionChanged event to any listeners void OnCollectionChanged(NotifyCollectionChangedAction action) { if (CollectionChanged != null) { CollectionChanged(this, new NotifyCollectionChangedEventArgs(action)); } } #endregion Protected Methods ////// Immutable, read-only SortDescriptionCollection /// class EmptySortDescriptionCollection : SortDescriptionCollection, IList { //------------------------------------------------------ // // Protected Methods // //------------------------------------------------------ #region Protected Methods ////// called by base class Collection<T> when the list is being cleared; /// raises a CollectionChanged event to any listeners /// protected override void ClearItems() { throw new NotSupportedException(); } ////// called by base class Collection<T> when an item is removed from list; /// raises a CollectionChanged event to any listeners /// protected override void RemoveItem(int index) { throw new NotSupportedException(); } ////// called by base class Collection<T> when an item is added to list; /// raises a CollectionChanged event to any listeners /// protected override void InsertItem(int index, SortDescription item) { throw new NotSupportedException(); } ////// called by base class Collection<T> when an item is set in list; /// raises a CollectionChanged event to any listeners /// protected override void SetItem(int index, SortDescription item) { throw new NotSupportedException(); } #endregion Protected Methods #region IList Implementations // explicit implementation to override the IsReadOnly and IsFixedSize properties bool IList.IsFixedSize { get { return true; } } bool IList.IsReadOnly { get { return true; } } #endregion IList Implementations } ////// returns an empty and non-modifiable SortDescriptionCollection /// public static readonly SortDescriptionCollection Empty = new EmptySortDescriptionCollection(); } } // 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
- MemberAccessException.cs
- WindowsListViewItem.cs
- AssemblyAttributesGoHere.cs
- ConfigXmlCDataSection.cs
- UpdateTracker.cs
- ISO2022Encoding.cs
- TableParagraph.cs
- DataShape.cs
- ComponentFactoryHelpers.cs
- LineUtil.cs
- SqlConnectionManager.cs
- XmlQueryTypeFactory.cs
- XmlSchemaSimpleType.cs
- DesignerDataSchemaClass.cs
- TableLayoutPanel.cs
- FaultReason.cs
- WebServiceAttribute.cs
- SafeEventLogReadHandle.cs
- TimestampInformation.cs
- DbConnectionPoolCounters.cs
- SiteMapProvider.cs
- X509CertificateCollection.cs
- PermissionRequestEvidence.cs
- XmlDataDocument.cs
- PageClientProxyGenerator.cs
- EventProxy.cs
- ProjectionRewriter.cs
- ToolbarAUtomationPeer.cs
- EdmError.cs
- NetworkInterface.cs
- BreakSafeBase.cs
- FieldToken.cs
- PartialCachingControl.cs
- WorkingDirectoryEditor.cs
- OleDbPermission.cs
- Vector3DCollectionConverter.cs
- XmlAggregates.cs
- PackWebRequest.cs
- _ProxyChain.cs
- DataGridViewControlCollection.cs
- FloaterBaseParaClient.cs
- PrimitiveType.cs
- XmlSchemaException.cs
- WrappedIUnknown.cs
- ImageSourceValueSerializer.cs
- PriorityItem.cs
- SelectionProviderWrapper.cs
- Invariant.cs
- ResourcePart.cs
- TraceHandlerErrorFormatter.cs
- RuntimeWrappedException.cs
- RequestCacheManager.cs
- ellipse.cs
- RootBrowserWindow.cs
- Atom10FeedFormatter.cs
- FragmentQueryProcessor.cs
- EventArgs.cs
- InheritanceContextHelper.cs
- Annotation.cs
- SchemaCollectionPreprocessor.cs
- CellParaClient.cs
- ValueTable.cs
- SessionEndingCancelEventArgs.cs
- XmlSchemaInferenceException.cs
- UserControlFileEditor.cs
- AdditionalEntityFunctions.cs
- DataGridItemCollection.cs
- PersonalizationAdministration.cs
- HttpCachePolicyBase.cs
- Int32Converter.cs
- Attributes.cs
- ComponentConverter.cs
- Control.cs
- ShaperBuffers.cs
- _IPv4Address.cs
- TemporaryBitmapFile.cs
- MultipleViewProviderWrapper.cs
- CatalogPartCollection.cs
- XmlValidatingReaderImpl.cs
- RIPEMD160.cs
- HMACSHA1.cs
- PrintControllerWithStatusDialog.cs
- EndGetFileNameFromUserRequest.cs
- SafeTimerHandle.cs
- XPathAncestorIterator.cs
- RoleGroup.cs
- UntrustedRecipientException.cs
- CalendarAutoFormatDialog.cs
- DesignerActionUIService.cs
- CodeSubDirectory.cs
- BindingExpression.cs
- WeakEventTable.cs
- XmlIlTypeHelper.cs
- CreateInstanceBinder.cs
- SystemEvents.cs
- RelationshipDetailsRow.cs
- RecommendedAsConfigurableAttribute.cs
- shaperfactory.cs
- ContextMenu.cs
- TextStore.cs