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
- HeaderCollection.cs
- InstanceNameConverter.cs
- InstallerTypeAttribute.cs
- EmptyStringExpandableObjectConverter.cs
- Logging.cs
- JavaScriptString.cs
- MutexSecurity.cs
- JoinTreeNode.cs
- VisualBrush.cs
- DesigntimeLicenseContext.cs
- KeyValueInternalCollection.cs
- CodeVariableReferenceExpression.cs
- LockingPersistenceProvider.cs
- PagedDataSource.cs
- NativeMethods.cs
- EntityCommandCompilationException.cs
- ConsoleTraceListener.cs
- WebPartEditorApplyVerb.cs
- PropertyValueChangedEvent.cs
- EnumType.cs
- CodeExporter.cs
- StandardCommands.cs
- TabControl.cs
- sitestring.cs
- HtmlControlPersistable.cs
- PointAnimationUsingKeyFrames.cs
- TextBox.cs
- ArgIterator.cs
- DesignerDataTable.cs
- FilteredReadOnlyMetadataCollection.cs
- FlowDocumentFormatter.cs
- WebServiceHandler.cs
- DesignBindingPicker.cs
- ToolStripContainer.cs
- PagePropertiesChangingEventArgs.cs
- DocumentViewerAutomationPeer.cs
- MemoryFailPoint.cs
- HttpsChannelListener.cs
- VoiceSynthesis.cs
- NativeWindow.cs
- PageAdapter.cs
- ShaderEffect.cs
- EventMappingSettingsCollection.cs
- CqlWriter.cs
- EncoderExceptionFallback.cs
- StringSorter.cs
- OutKeywords.cs
- SizeIndependentAnimationStorage.cs
- LocationUpdates.cs
- ControlBuilder.cs
- coordinatorscratchpad.cs
- LogLogRecordEnumerator.cs
- TextTreeFixupNode.cs
- AspCompat.cs
- CurrentChangingEventManager.cs
- CryptoApi.cs
- PersonalizationProviderHelper.cs
- RsaKeyGen.cs
- SspiWrapper.cs
- RuntimeVariableList.cs
- RegistryConfigurationProvider.cs
- LinkLabelLinkClickedEvent.cs
- ToolStripRendererSwitcher.cs
- UpdateCommand.cs
- EditorBrowsableAttribute.cs
- Pair.cs
- ObservableDictionary.cs
- ConfigXmlSignificantWhitespace.cs
- LateBoundChannelParameterCollection.cs
- HttpAsyncResult.cs
- WorkerProcess.cs
- UnknownWrapper.cs
- LayoutEditorPart.cs
- TimeoutValidationAttribute.cs
- RelationshipSet.cs
- BatchWriter.cs
- EventLogReader.cs
- BamlVersionHeader.cs
- BufferedGraphicsContext.cs
- PermissionAttributes.cs
- ToReply.cs
- PartialCachingControl.cs
- WaitHandleCannotBeOpenedException.cs
- ExpressionVisitor.cs
- InfoCardSymmetricCrypto.cs
- BezierSegment.cs
- FontSizeConverter.cs
- HttpRuntime.cs
- SafePEFileHandle.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- TagMapInfo.cs
- TrackingLocation.cs
- XmlObjectSerializerContext.cs
- HandleRef.cs
- NullableDecimalAverageAggregationOperator.cs
- DefaultObjectMappingItemCollection.cs
- TextTabProperties.cs
- Rect3D.cs
- WmlObjectListAdapter.cs
- ProfileSection.cs