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
- AssertHelper.cs
- SafeEventHandle.cs
- ImageSource.cs
- FeatureAttribute.cs
- TemplatePropertyEntry.cs
- QilReference.cs
- TableAutomationPeer.cs
- DataSvcMapFile.cs
- SplitContainerDesigner.cs
- PersistencePipeline.cs
- ButtonFieldBase.cs
- SpellCheck.cs
- QueuePathDialog.cs
- compensatingcollection.cs
- HierarchicalDataSourceControl.cs
- XmlSchemaImport.cs
- SqlDuplicator.cs
- LicenseManager.cs
- Vector3DKeyFrameCollection.cs
- KeyInfo.cs
- SyndicationDeserializer.cs
- CompositeFontFamily.cs
- SoapObjectWriter.cs
- SqlCacheDependencySection.cs
- OleDbFactory.cs
- ToolStripItemTextRenderEventArgs.cs
- TextEffect.cs
- FormViewPageEventArgs.cs
- XmlWrappingWriter.cs
- SQLInt16Storage.cs
- DashStyles.cs
- ErrorStyle.cs
- FocusTracker.cs
- PolyBezierSegment.cs
- XsltArgumentList.cs
- GridViewRow.cs
- XmlDictionaryWriter.cs
- ComEventsSink.cs
- TypeDescriptionProviderAttribute.cs
- CodeTryCatchFinallyStatement.cs
- XmlUrlResolver.cs
- ForceCopyBuildProvider.cs
- ToolStripItemTextRenderEventArgs.cs
- EntityFrameworkVersions.cs
- TransformBlockRequest.cs
- Expander.cs
- XPathDocumentIterator.cs
- InvalidPrinterException.cs
- HtmlControlDesigner.cs
- PersonalizationProviderHelper.cs
- Control.cs
- TextRunCache.cs
- PrimitiveXmlSerializers.cs
- KerberosSecurityTokenProvider.cs
- WebControlParameterProxy.cs
- ListViewInsertEventArgs.cs
- UriTemplateHelpers.cs
- PackageFilter.cs
- HelpKeywordAttribute.cs
- DeferredElementTreeState.cs
- ProcessModelSection.cs
- Animatable.cs
- Image.cs
- FloatAverageAggregationOperator.cs
- CodeDesigner.cs
- WebPartTransformerAttribute.cs
- documentation.cs
- StreamReader.cs
- DataSourceXmlTextReader.cs
- AssertSection.cs
- AssemblyNameProxy.cs
- FirewallWrapper.cs
- FactoryGenerator.cs
- TempFiles.cs
- AccessDataSource.cs
- CodeDOMProvider.cs
- DateTimeValueSerializerContext.cs
- DynamicMethod.cs
- XmlDomTextWriter.cs
- ErasingStroke.cs
- WebPartEditVerb.cs
- _CommandStream.cs
- _ListenerAsyncResult.cs
- SortedList.cs
- CompiledRegexRunner.cs
- TypeInfo.cs
- QilStrConcatenator.cs
- ExternalFile.cs
- OdbcConnectionStringbuilder.cs
- Vector3DAnimation.cs
- AccessDataSource.cs
- thaishape.cs
- HttpRequestCacheValidator.cs
- XmlValueConverter.cs
- AggregateNode.cs
- Exception.cs
- XmlSerializerNamespaces.cs
- RuleSetReference.cs
- SqlTrackingService.cs
- CollectionDataContractAttribute.cs