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
- RepeatBehavior.cs
- MessageDirection.cs
- BackgroundFormatInfo.cs
- SafeProcessHandle.cs
- ToolStripSeparatorRenderEventArgs.cs
- EpmCustomContentSerializer.cs
- BadImageFormatException.cs
- Rules.cs
- BufferedGraphicsContext.cs
- StrokeNodeOperations2.cs
- TreeNodeMouseHoverEvent.cs
- CreateSequence.cs
- ListViewPagedDataSource.cs
- input.cs
- KeysConverter.cs
- MeasureData.cs
- CustomAttributeSerializer.cs
- XmlBoundElement.cs
- BindableAttribute.cs
- IPPacketInformation.cs
- EventProviderWriter.cs
- QilXmlWriter.cs
- AmbientLight.cs
- Brush.cs
- FixedSOMPageElement.cs
- GroupByExpressionRewriter.cs
- DataGridViewButtonColumn.cs
- LocatorBase.cs
- ReflectionHelper.cs
- EdmToObjectNamespaceMap.cs
- GridViewAutoFormat.cs
- RevocationPoint.cs
- ResourceDisplayNameAttribute.cs
- ListViewCancelEventArgs.cs
- PropertyGrid.cs
- ScrollBar.cs
- DataGridHeaderBorder.cs
- XmlIterators.cs
- GenericAuthenticationEventArgs.cs
- querybuilder.cs
- DistributedTransactionPermission.cs
- TypeNameHelper.cs
- RenameRuleObjectDialog.Designer.cs
- ResponseBodyWriter.cs
- EllipseGeometry.cs
- XslCompiledTransform.cs
- InputLanguageCollection.cs
- _BasicClient.cs
- WithStatement.cs
- CaseKeyBox.xaml.cs
- MenuItemCollection.cs
- OrderByLifter.cs
- CounterSampleCalculator.cs
- Stylus.cs
- DocumentPaginator.cs
- ImmComposition.cs
- HitTestWithGeometryDrawingContextWalker.cs
- OleDbCommandBuilder.cs
- CryptoKeySecurity.cs
- ControllableStoryboardAction.cs
- FactoryGenerator.cs
- TransactedBatchingElement.cs
- LambdaCompiler.Expressions.cs
- WebEventCodes.cs
- _NestedMultipleAsyncResult.cs
- XmlSchemaObjectCollection.cs
- AssemblyBuilder.cs
- XpsViewerException.cs
- Tuple.cs
- HistoryEventArgs.cs
- TypeConstant.cs
- DataGridViewRowConverter.cs
- EmptyQuery.cs
- EqualityComparer.cs
- ListItem.cs
- StylusPointPropertyInfoDefaults.cs
- GlobalizationAssembly.cs
- InfiniteTimeSpanConverter.cs
- designeractionlistschangedeventargs.cs
- XmlArrayItemAttributes.cs
- ReferencedAssembly.cs
- SizeF.cs
- CapabilitiesAssignment.cs
- CultureInfoConverter.cs
- Int16AnimationUsingKeyFrames.cs
- TaiwanCalendar.cs
- StubHelpers.cs
- _NativeSSPI.cs
- ToolStripTextBox.cs
- HiddenFieldPageStatePersister.cs
- ScriptControlDescriptor.cs
- Mappings.cs
- PowerStatus.cs
- DeclaredTypeElementCollection.cs
- SqlDataSourceFilteringEventArgs.cs
- QueryOperationResponseOfT.cs
- SafeHandles.cs
- ContentFileHelper.cs
- HTTPNotFoundHandler.cs
- SubpageParaClient.cs