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
- ReverseInheritProperty.cs
- FixUp.cs
- SaveFileDialog.cs
- CompilerGeneratedAttribute.cs
- ConnectionPointCookie.cs
- MediaSystem.cs
- DiscoveryClientBindingElement.cs
- WinCategoryAttribute.cs
- DataGridViewAutoSizeModeEventArgs.cs
- RelationshipEnd.cs
- CodeArrayCreateExpression.cs
- UIElementAutomationPeer.cs
- ResolvePPIDRequest.cs
- GeometryModel3D.cs
- CompModSwitches.cs
- SystemMulticastIPAddressInformation.cs
- TextRangeEditLists.cs
- AssemblyBuilder.cs
- PropertyInformationCollection.cs
- precedingquery.cs
- TriggerCollection.cs
- BamlMapTable.cs
- FormViewAutoFormat.cs
- ApplicationFileParser.cs
- ISCIIEncoding.cs
- WindowsTokenRoleProvider.cs
- XmlUrlEditor.cs
- GeometryValueSerializer.cs
- LOSFormatter.cs
- LocalizabilityAttribute.cs
- StrokeCollection.cs
- NumericUpDownAcceleration.cs
- DataGridViewCellErrorTextNeededEventArgs.cs
- CodeSnippetStatement.cs
- DPTypeDescriptorContext.cs
- PriorityBindingExpression.cs
- PersonalizationStateQuery.cs
- codemethodreferenceexpression.cs
- OperandQuery.cs
- DetailsViewPageEventArgs.cs
- ImageKeyConverter.cs
- _SingleItemRequestCache.cs
- ResXDataNode.cs
- SerTrace.cs
- Messages.cs
- SmtpMail.cs
- PropertyEntry.cs
- CssStyleCollection.cs
- ScriptIgnoreAttribute.cs
- ForeignKeyConstraint.cs
- x509store.cs
- XmlException.cs
- XmlTextReader.cs
- EUCJPEncoding.cs
- TypeListConverter.cs
- JulianCalendar.cs
- UrlAuthorizationModule.cs
- ActionFrame.cs
- MessageQueuePermissionEntryCollection.cs
- Speller.cs
- Marshal.cs
- ProtocolsSection.cs
- formatter.cs
- base64Transforms.cs
- AtomContentProperty.cs
- NodeInfo.cs
- ISAPIRuntime.cs
- InvalidComObjectException.cs
- RoutedUICommand.cs
- ExpressionWriter.cs
- ColumnTypeConverter.cs
- StrokeCollectionConverter.cs
- AggregateNode.cs
- ListItemCollection.cs
- StringHandle.cs
- AsyncPostBackErrorEventArgs.cs
- validation.cs
- ICspAsymmetricAlgorithm.cs
- OdbcHandle.cs
- DesignerProperties.cs
- SQLBoolean.cs
- EventLogPermissionEntry.cs
- CssStyleCollection.cs
- DrawListViewItemEventArgs.cs
- __FastResourceComparer.cs
- FileDataSourceCache.cs
- InitializingNewItemEventArgs.cs
- XmlCollation.cs
- GeometryDrawing.cs
- DomainConstraint.cs
- ZoneButton.cs
- DrawingContextDrawingContextWalker.cs
- PropertyCondition.cs
- __ConsoleStream.cs
- BrowserCapabilitiesFactory35.cs
- HMAC.cs
- AdPostCacheSubstitution.cs
- LocatorManager.cs
- WizardForm.cs
- SpeakProgressEventArgs.cs