Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Base / System / ComponentModel / SortDescriptionCollection.cs / 1 / SortDescriptionCollection.cs
//---------------------------------------------------------------------------- // //// Copyright (C) 2003 by Microsoft Corporation. All rights reserved. // // // // Description: dynamic collection of SortDescriptions // // See spec at [....]/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
- SignedXml.cs
- UnmanagedBitmapWrapper.cs
- TextRangeEdit.cs
- MailWebEventProvider.cs
- ExecutedRoutedEventArgs.cs
- Switch.cs
- ProfilePropertyNameValidator.cs
- UniqueTransportManagerRegistration.cs
- ControlBindingsCollection.cs
- XmlIgnoreAttribute.cs
- HashCodeCombiner.cs
- SqlRowUpdatedEvent.cs
- Line.cs
- PersianCalendar.cs
- BamlTreeNode.cs
- Shape.cs
- OleDbEnumerator.cs
- SerialPort.cs
- CacheRequest.cs
- WizardStepBase.cs
- HttpValueCollection.cs
- MultipleViewProviderWrapper.cs
- PageContent.cs
- PhoneCall.cs
- CheckBoxRenderer.cs
- InternalBase.cs
- ObfuscateAssemblyAttribute.cs
- AppSecurityManager.cs
- DbConvert.cs
- NativeMethods.cs
- PageFunction.cs
- CollectionConverter.cs
- UniqueEventHelper.cs
- TextPenaltyModule.cs
- ButtonRenderer.cs
- MessageSecurityVersionConverter.cs
- MethodImplAttribute.cs
- CultureTableRecord.cs
- DataViewSettingCollection.cs
- OracleNumber.cs
- DiscoveryDocumentSerializer.cs
- HiddenField.cs
- ListView.cs
- MimeParameterWriter.cs
- RelatedEnd.cs
- _NegoStream.cs
- TypeSystemProvider.cs
- BrowserCapabilitiesCompiler.cs
- BasicAsyncResult.cs
- Logging.cs
- IImplicitResourceProvider.cs
- FormatVersion.cs
- ProfileGroupSettingsCollection.cs
- ImageClickEventArgs.cs
- TraceSource.cs
- TabletDevice.cs
- RectangleGeometry.cs
- ListViewTableRow.cs
- DataSpaceManager.cs
- SqlConnectionFactory.cs
- DataGridViewCellMouseEventArgs.cs
- CodeAttributeArgumentCollection.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- ListViewUpdatedEventArgs.cs
- _OSSOCK.cs
- HatchBrush.cs
- Visual3D.cs
- SchemaTypeEmitter.cs
- WebZone.cs
- ValueProviderWrapper.cs
- RegexWriter.cs
- HashMembershipCondition.cs
- MetadataExchangeClient.cs
- HeaderedItemsControl.cs
- ObjectDataSourceDisposingEventArgs.cs
- ControlParameter.cs
- TextTreeInsertUndoUnit.cs
- CorrelationManager.cs
- SqlDataReader.cs
- AccessControlEntry.cs
- LicFileLicenseProvider.cs
- Binding.cs
- TextSelectionProcessor.cs
- DisableDpiAwarenessAttribute.cs
- RenderCapability.cs
- OutArgumentConverter.cs
- Accessors.cs
- WsdlBuildProvider.cs
- dsa.cs
- TemplateControl.cs
- XamlFilter.cs
- FixedSOMTextRun.cs
- XDeferredAxisSource.cs
- columnmapkeybuilder.cs
- FileLevelControlBuilderAttribute.cs
- XslTransformFileEditor.cs
- DelegatingHeader.cs
- Expression.cs
- ResourcePool.cs
- TableLayoutPanel.cs