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
- WebControl.cs
- SerializationInfo.cs
- SqlParameterCollection.cs
- DynamicHyperLink.cs
- Blend.cs
- SkinBuilder.cs
- FormsAuthenticationConfiguration.cs
- IsolatedStorageFileStream.cs
- StaticExtension.cs
- GeometryGroup.cs
- BypassElement.cs
- WindowsTitleBar.cs
- MouseEventArgs.cs
- PathSegment.cs
- NotifyIcon.cs
- SocketCache.cs
- CodeConstructor.cs
- TextWriterTraceListener.cs
- TopClause.cs
- EventLogTraceListener.cs
- MessageQueueAccessControlEntry.cs
- StrongNamePublicKeyBlob.cs
- XhtmlMobileTextWriter.cs
- ObjectPersistData.cs
- ThemeableAttribute.cs
- TypeInitializationException.cs
- GenericTypeParameterBuilder.cs
- StylusTouchDevice.cs
- ClientSettingsStore.cs
- HttpDebugHandler.cs
- DesignerDataView.cs
- Span.cs
- GridEntry.cs
- TargetInvocationException.cs
- Select.cs
- AdCreatedEventArgs.cs
- ObjectDataSourceEventArgs.cs
- TextCollapsingProperties.cs
- ComponentEditorPage.cs
- DataGridColumn.cs
- BasePattern.cs
- DataRowCollection.cs
- WithParamAction.cs
- InfoCardTrace.cs
- DataGridViewImageColumn.cs
- DataSourceProvider.cs
- InertiaExpansionBehavior.cs
- AmbiguousMatchException.cs
- CompilationSection.cs
- NativeCompoundFileAPIs.cs
- NamedPipeWorkerProcess.cs
- TypeElementCollection.cs
- CopyOnWriteList.cs
- NativeMethodsCLR.cs
- DataTemplateKey.cs
- ResourceExpressionBuilder.cs
- TransformValueSerializer.cs
- OrderedHashRepartitionStream.cs
- StringReader.cs
- ComponentEditorPage.cs
- KeyEvent.cs
- VScrollBar.cs
- safelinkcollection.cs
- ObjRef.cs
- SeverityFilter.cs
- ColumnCollection.cs
- QuaternionAnimation.cs
- SerializableTypeCodeDomSerializer.cs
- RealizationContext.cs
- BinaryExpression.cs
- _NestedSingleAsyncResult.cs
- PrivilegedConfigurationManager.cs
- NamespaceQuery.cs
- DataSourceView.cs
- DataBinder.cs
- PlainXmlWriter.cs
- PageContentAsyncResult.cs
- Thread.cs
- Bezier.cs
- RadioButtonRenderer.cs
- ConfigXmlWhitespace.cs
- PersonalizationProviderHelper.cs
- FormClosingEvent.cs
- PrintPreviewGraphics.cs
- DataGridViewRowEventArgs.cs
- RenderContext.cs
- RadioButtonList.cs
- OutputWindow.cs
- ButtonFieldBase.cs
- DataGridViewCellStyleConverter.cs
- Crypto.cs
- BitArray.cs
- BinaryKeyIdentifierClause.cs
- SymbolMethod.cs
- AppearanceEditorPart.cs
- DateTimeOffsetStorage.cs
- RequestQueue.cs
- Point3DAnimation.cs
- LinqDataSourceUpdateEventArgs.cs
- AppDomainManager.cs