Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Base / System / ComponentModel / SortDescriptionCollection.cs / 1305600 / SortDescriptionCollection.cs
//---------------------------------------------------------------------------- // //// Copyright (C) 2003 by Microsoft Corporation. All rights reserved. // // // // Description: dynamic collection of SortDescriptions // // See spec at http://avalon/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
- AdCreatedEventArgs.cs
- CustomAttributeBuilder.cs
- NamedPermissionSet.cs
- PngBitmapDecoder.cs
- WorkerRequest.cs
- MsmqMessageSerializationFormat.cs
- SqlClientWrapperSmiStreamChars.cs
- _ConnectStream.cs
- CompModSwitches.cs
- XmlSerializerAssemblyAttribute.cs
- CodeMemberEvent.cs
- BadImageFormatException.cs
- DataTableCollection.cs
- updatecommandorderer.cs
- BinaryConverter.cs
- PeerNameResolver.cs
- WmlFormAdapter.cs
- SocketException.cs
- LinqDataSourceSelectEventArgs.cs
- PrintingPermission.cs
- TaskHelper.cs
- NameValueConfigurationElement.cs
- XmlCompatibilityReader.cs
- RequiredAttributeAttribute.cs
- FontUnit.cs
- DesignerActionVerbList.cs
- AspNetRouteServiceHttpHandler.cs
- HashMembershipCondition.cs
- returneventsaver.cs
- InOutArgument.cs
- ImageList.cs
- MetadataSource.cs
- TypeResolver.cs
- FlowNode.cs
- ValidationResult.cs
- BitmapEffectrendercontext.cs
- XmlSchemaSimpleContentExtension.cs
- Pen.cs
- DataViewManager.cs
- ThreadExceptionDialog.cs
- CommentAction.cs
- ToolStripItemEventArgs.cs
- XmlWellformedWriter.cs
- ListViewTableRow.cs
- GetPageCompletedEventArgs.cs
- XmlWrappingReader.cs
- Item.cs
- AuthenticationModulesSection.cs
- NetSectionGroup.cs
- Encoder.cs
- ObjectDataSourceMethodEventArgs.cs
- DbExpressionVisitor.cs
- WebPartZoneBaseDesigner.cs
- DesignerTransaction.cs
- ISAPIWorkerRequest.cs
- OverflowException.cs
- Int16Converter.cs
- BoolExpr.cs
- InfoCardRSAPKCS1KeyExchangeFormatter.cs
- DataGridViewCellValueEventArgs.cs
- DataGridViewSelectedCellCollection.cs
- XmlSerializer.cs
- RijndaelManaged.cs
- HelloMessageApril2005.cs
- DurableInstanceProvider.cs
- XmlQueryContext.cs
- WebAdminConfigurationHelper.cs
- IPEndPointCollection.cs
- DynamicQueryableWrapper.cs
- FontInfo.cs
- XamlValidatingReader.cs
- IPEndPoint.cs
- CultureMapper.cs
- Button.cs
- SmtpNegotiateAuthenticationModule.cs
- ToolboxItemLoader.cs
- BitmapEffectState.cs
- Utils.cs
- CapabilitiesSection.cs
- PrintDialog.cs
- FixUpCollection.cs
- DataColumnMapping.cs
- RenderingBiasValidation.cs
- _NestedSingleAsyncResult.cs
- MenuRendererClassic.cs
- HttpConfigurationSystem.cs
- xsdvalidator.cs
- SchemaReference.cs
- WorkflowOperationInvoker.cs
- XmlSchemaGroupRef.cs
- ConstraintCollection.cs
- DictionaryContent.cs
- VectorAnimationBase.cs
- DataGridCommandEventArgs.cs
- KeysConverter.cs
- ParentUndoUnit.cs
- CryptographicAttribute.cs
- DateTimeFormat.cs
- webclient.cs
- GridItemProviderWrapper.cs