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
- TypeUtil.cs
- InlineUIContainer.cs
- Int64Converter.cs
- HandlerFactoryCache.cs
- StrongNameUtility.cs
- XamlSerializer.cs
- HostingEnvironmentWrapper.cs
- TimelineGroup.cs
- _ConnectionGroup.cs
- StreamHelper.cs
- ConfigXmlReader.cs
- PriorityQueue.cs
- ArgumentDesigner.xaml.cs
- ScriptManagerProxy.cs
- Debug.cs
- WpfWebRequestHelper.cs
- TextTreeText.cs
- UpdatableWrapper.cs
- MediaEntryAttribute.cs
- Control.cs
- EntityDataSourceUtil.cs
- SplitterPanel.cs
- CaseInsensitiveHashCodeProvider.cs
- ConfigurationFileMap.cs
- DataGridViewRowStateChangedEventArgs.cs
- ClientSession.cs
- UnsafeNativeMethods.cs
- DataGridRow.cs
- TemplateField.cs
- FixedHighlight.cs
- AttributeData.cs
- CroppedBitmap.cs
- SrgsDocument.cs
- _PooledStream.cs
- EventLogEntry.cs
- HttpStreamXmlDictionaryWriter.cs
- HttpHandlerAction.cs
- ListenerConnectionDemuxer.cs
- ConfigurationStrings.cs
- FtpWebResponse.cs
- processwaithandle.cs
- SelfIssuedAuthAsymmetricKey.cs
- StickyNoteAnnotations.cs
- ArgumentOutOfRangeException.cs
- VectorCollectionConverter.cs
- XmlSchemaComplexContentExtension.cs
- LogFlushAsyncResult.cs
- TypeConstant.cs
- Array.cs
- CodeMemberEvent.cs
- Oid.cs
- XPathNavigator.cs
- DynamicQueryableWrapper.cs
- FrameworkTextComposition.cs
- ThemeableAttribute.cs
- DesignerDataColumn.cs
- ProfileModule.cs
- ControlBuilder.cs
- LocalClientSecuritySettings.cs
- CollectionViewGroupRoot.cs
- TextBox.cs
- HTTPNotFoundHandler.cs
- XmlCodeExporter.cs
- BitmapEffectvisualstate.cs
- InteropEnvironment.cs
- AsynchronousChannelMergeEnumerator.cs
- SmtpReplyReaderFactory.cs
- XPathPatternParser.cs
- TdsParserStaticMethods.cs
- RecommendedAsConfigurableAttribute.cs
- Transform3D.cs
- PointValueSerializer.cs
- BitmapSizeOptions.cs
- ExtendedTransformFactory.cs
- SchemaMapping.cs
- EntityViewGenerationAttribute.cs
- ToolboxItem.cs
- HttpChannelHelper.cs
- DataGridViewComboBoxEditingControl.cs
- ServiceDescriptionReflector.cs
- ComplexTypeEmitter.cs
- NonVisualControlAttribute.cs
- ImageClickEventArgs.cs
- PopupControlService.cs
- StylusShape.cs
- GridViewSelectEventArgs.cs
- VisualTreeUtils.cs
- UnaryOperationBinder.cs
- OdbcConnectionStringbuilder.cs
- EntityDataSourceSelectingEventArgs.cs
- Utility.cs
- RawKeyboardInputReport.cs
- FederatedMessageSecurityOverHttpElement.cs
- ReadWriteObjectLock.cs
- TimeSpanSecondsOrInfiniteConverter.cs
- SqlBooleanizer.cs
- StorageMappingFragment.cs
- ReferencedAssembly.cs
- AssociationType.cs
- StringValidator.cs