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
- PropertyGrid.cs
- XPathCompileException.cs
- FuncCompletionCallbackWrapper.cs
- DataSourceHelper.cs
- ModuleElement.cs
- Oid.cs
- Point3DAnimationBase.cs
- RectAnimationUsingKeyFrames.cs
- RtType.cs
- DayRenderEvent.cs
- CheckBox.cs
- DispatcherExceptionEventArgs.cs
- TdsParserSessionPool.cs
- shaper.cs
- PasswordTextContainer.cs
- ScriptIgnoreAttribute.cs
- LocationReferenceValue.cs
- ServiceTimeoutsElement.cs
- BitmapCodecInfo.cs
- DefaultObjectMappingItemCollection.cs
- ConnectionStringsSection.cs
- DataGridViewComboBoxCell.cs
- _MultipleConnectAsync.cs
- MaskedTextBoxTextEditorDropDown.cs
- SafeCertificateContext.cs
- ClientRuntimeConfig.cs
- TextCompositionManager.cs
- DrawingDrawingContext.cs
- RequestCacheManager.cs
- XmlWriterSettings.cs
- GetCertificateRequest.cs
- NavigationPropertyEmitter.cs
- ToolboxDataAttribute.cs
- DispatchProxy.cs
- TranslateTransform3D.cs
- PrivacyNoticeBindingElementImporter.cs
- PageParser.cs
- BamlBinaryReader.cs
- StringWriter.cs
- COM2ICategorizePropertiesHandler.cs
- _FtpControlStream.cs
- NavigationWindow.cs
- BrushMappingModeValidation.cs
- SqlBuilder.cs
- CancelEventArgs.cs
- DataGridViewRow.cs
- IndicShape.cs
- TextEditorCopyPaste.cs
- PtsHelper.cs
- NonClientArea.cs
- ValueQuery.cs
- ArgumentOutOfRangeException.cs
- ControlCollection.cs
- RemoteWebConfigurationHostServer.cs
- SafeLibraryHandle.cs
- SignedXml.cs
- StringWriter.cs
- DesignerUtils.cs
- XmlNamespaceManager.cs
- _SslSessionsCache.cs
- DiagnosticsConfiguration.cs
- WebPartConnectionsEventArgs.cs
- RelationshipManager.cs
- XmlLoader.cs
- httpstaticobjectscollection.cs
- SpecularMaterial.cs
- ServiceModelConfigurationSection.cs
- SerializationInfoEnumerator.cs
- LinqDataSourceInsertEventArgs.cs
- PointCollectionValueSerializer.cs
- PersonalizationStateInfo.cs
- InputScopeConverter.cs
- counter.cs
- DSGeneratorProblem.cs
- AbsoluteQuery.cs
- ScrollItemPattern.cs
- ThousandthOfEmRealPoints.cs
- ReplyChannel.cs
- ProxyWebPartConnectionCollection.cs
- EntityKeyElement.cs
- AnonymousIdentificationSection.cs
- XmlCharacterData.cs
- StateFinalizationActivity.cs
- LateBoundBitmapDecoder.cs
- PassportAuthenticationEventArgs.cs
- DelegatingTypeDescriptionProvider.cs
- SynchronizationLockException.cs
- ColorContext.cs
- _NegoState.cs
- FormatConvertedBitmap.cs
- ProfileBuildProvider.cs
- regiisutil.cs
- SystemIcons.cs
- InputLanguageCollection.cs
- LOSFormatter.cs
- ErrorEventArgs.cs
- PrtTicket_Public_Simple.cs
- TableSectionStyle.cs
- HtmlEncodedRawTextWriter.cs
- FontStyles.cs