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
- Pipe.cs
- XmlSchemaSimpleTypeList.cs
- ValidatingReaderNodeData.cs
- IdentifierService.cs
- NestedContainer.cs
- DataControlReference.cs
- CodeBinaryOperatorExpression.cs
- InvalidOleVariantTypeException.cs
- FixedHyperLink.cs
- ContextMenuStrip.cs
- ConditionCollection.cs
- NavigationExpr.cs
- embossbitmapeffect.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- ObjectToken.cs
- CustomValidator.cs
- XmlSchemaGroupRef.cs
- XmlSchemaAttribute.cs
- SerializableAttribute.cs
- TreeBuilder.cs
- ComponentGuaranteesAttribute.cs
- TextElementEnumerator.cs
- FrameworkElementFactory.cs
- MatrixTransform3D.cs
- DashStyle.cs
- MemberPathMap.cs
- ProcessInfo.cs
- SmtpTransport.cs
- WindowsListViewGroupSubsetLink.cs
- SourceItem.cs
- SortQuery.cs
- HttpHandler.cs
- MasterPage.cs
- FileDetails.cs
- pingexception.cs
- DataListItem.cs
- SpanIndex.cs
- control.ime.cs
- XmlEventCache.cs
- ErrorActivity.cs
- DrawingContextDrawingContextWalker.cs
- ManipulationBoundaryFeedbackEventArgs.cs
- DataGridClipboardCellContent.cs
- HtmlInputSubmit.cs
- ZoneMembershipCondition.cs
- SqlGatherConsumedAliases.cs
- CheckBoxList.cs
- CheckBoxPopupAdapter.cs
- EntityKeyElement.cs
- HttpStaticObjectsCollectionWrapper.cs
- HostedTransportConfigurationBase.cs
- XmlResolver.cs
- WebPartDescriptionCollection.cs
- XmlUtilWriter.cs
- PrintingPermission.cs
- SqlDataSourceRefreshSchemaForm.cs
- DeflateStream.cs
- ConfigurationSectionGroup.cs
- ObjectParameterCollection.cs
- CodeNamespaceCollection.cs
- OutputCacheModule.cs
- FileAuthorizationModule.cs
- TreeBuilder.cs
- ReversePositionQuery.cs
- _ConnectOverlappedAsyncResult.cs
- ConnectionManagementSection.cs
- ExceptionUtil.cs
- ConfigXmlElement.cs
- Helper.cs
- EntitySetRetriever.cs
- DeploymentSection.cs
- NumberFunctions.cs
- ViewKeyConstraint.cs
- GradientStopCollection.cs
- ZipIOExtraFieldZip64Element.cs
- ListViewDataItem.cs
- ByteAnimationUsingKeyFrames.cs
- GenericParameterDataContract.cs
- GiveFeedbackEvent.cs
- XNodeValidator.cs
- BindingsCollection.cs
- AutoCompleteStringCollection.cs
- _AutoWebProxyScriptEngine.cs
- TypeBuilderInstantiation.cs
- RawStylusInput.cs
- EntityWithKeyStrategy.cs
- WebBrowserBase.cs
- ProjectionCamera.cs
- BinaryFormatter.cs
- DiscoveryClientReferences.cs
- StringArrayConverter.cs
- XmlWhitespace.cs
- OperationFormatUse.cs
- BitmapEffectGroup.cs
- MsmqProcessProtocolHandler.cs
- EntryPointNotFoundException.cs
- HotCommands.cs
- WorkBatch.cs
- BooleanFunctions.cs
- ScrollableControl.cs