Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / CompMod / System / Collections / ObjectModel / ReadOnlyObservableCollection.cs / 1305376 / ReadOnlyObservableCollection.cs
//---------------------------------------------------------------------------- // //// Copyright (C) 2003 by Microsoft Corporation. All rights reserved. // // // // Description: Read-only wrapper around an ObservableCollection. // // See spec at http://avalon/connecteddata/Specs/Collection%20Interfaces.mht // //--------------------------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using System.Collections.Specialized; using System.ComponentModel; using System.Runtime.CompilerServices; namespace System.Collections.ObjectModel { ////// Read-only wrapper around an ObservableCollection. /// [Serializable()] [TypeForwardedFrom("WindowsBase, Version=3.0.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")] public class ReadOnlyObservableCollection: ReadOnlyCollection , INotifyCollectionChanged, INotifyPropertyChanged { #region Constructors //----------------------------------------------------- // // Constructors // //----------------------------------------------------- /// /// Initializes a new instance of ReadOnlyObservableCollection that /// wraps the given ObservableCollection. /// public ReadOnlyObservableCollection(ObservableCollectionlist) : base(list) { ((INotifyCollectionChanged)Items).CollectionChanged += new NotifyCollectionChangedEventHandler(HandleCollectionChanged); ((INotifyPropertyChanged)Items).PropertyChanged += new PropertyChangedEventHandler(HandlePropertyChanged); } #endregion Constructors #region Interfaces //------------------------------------------------------ // // Interfaces // //----------------------------------------------------- #region INotifyCollectionChanged /// /// CollectionChanged event (per event NotifyCollectionChangedEventHandler INotifyCollectionChanged.CollectionChanged { add { CollectionChanged += value; } remove { CollectionChanged -= value; } } ///). /// /// Occurs when the collection changes, either by adding or removing an item. /// ////// see [field:NonSerializedAttribute()] protected virtual event NotifyCollectionChangedEventHandler CollectionChanged; ////// /// raise CollectionChanged event to any listeners /// protected virtual void OnCollectionChanged(NotifyCollectionChangedEventArgs args) { if (CollectionChanged != null) { CollectionChanged(this, args); } } #endregion INotifyCollectionChanged #region INotifyPropertyChanged ////// PropertyChanged event (per event PropertyChangedEventHandler INotifyPropertyChanged.PropertyChanged { add { PropertyChanged += value; } remove { PropertyChanged -= value; } } ///). /// /// Occurs when a property changes. /// ////// see [field:NonSerializedAttribute()] protected virtual event PropertyChangedEventHandler PropertyChanged; ////// /// raise PropertyChanged event to any listeners /// protected virtual void OnPropertyChanged(PropertyChangedEventArgs args) { if (PropertyChanged != null) { PropertyChanged(this, args); } } #endregion INotifyPropertyChanged #endregion Interfaces #region Private Methods //------------------------------------------------------ // // Private Methods // //------------------------------------------------------ // forward CollectionChanged events from the base list to our listeners void HandleCollectionChanged(object sender, NotifyCollectionChangedEventArgs e) { OnCollectionChanged(e); } // forward PropertyChanged events from the base list to our listeners void HandlePropertyChanged(object sender, PropertyChangedEventArgs e) { OnPropertyChanged(e); } #endregion Private Methods #region Private Fields //----------------------------------------------------- // // Private Fields // //------------------------------------------------------ #endregion Private Fields } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //---------------------------------------------------------------------------- // //// Copyright (C) 2003 by Microsoft Corporation. All rights reserved. // // // // Description: Read-only wrapper around an ObservableCollection. // // See spec at http://avalon/connecteddata/Specs/Collection%20Interfaces.mht // //--------------------------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using System.Collections.Specialized; using System.ComponentModel; using System.Runtime.CompilerServices; namespace System.Collections.ObjectModel { ////// Read-only wrapper around an ObservableCollection. /// [Serializable()] [TypeForwardedFrom("WindowsBase, Version=3.0.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")] public class ReadOnlyObservableCollection: ReadOnlyCollection , INotifyCollectionChanged, INotifyPropertyChanged { #region Constructors //----------------------------------------------------- // // Constructors // //----------------------------------------------------- /// /// Initializes a new instance of ReadOnlyObservableCollection that /// wraps the given ObservableCollection. /// public ReadOnlyObservableCollection(ObservableCollectionlist) : base(list) { ((INotifyCollectionChanged)Items).CollectionChanged += new NotifyCollectionChangedEventHandler(HandleCollectionChanged); ((INotifyPropertyChanged)Items).PropertyChanged += new PropertyChangedEventHandler(HandlePropertyChanged); } #endregion Constructors #region Interfaces //------------------------------------------------------ // // Interfaces // //----------------------------------------------------- #region INotifyCollectionChanged /// /// CollectionChanged event (per event NotifyCollectionChangedEventHandler INotifyCollectionChanged.CollectionChanged { add { CollectionChanged += value; } remove { CollectionChanged -= value; } } ///). /// /// Occurs when the collection changes, either by adding or removing an item. /// ////// see [field:NonSerializedAttribute()] protected virtual event NotifyCollectionChangedEventHandler CollectionChanged; ////// /// raise CollectionChanged event to any listeners /// protected virtual void OnCollectionChanged(NotifyCollectionChangedEventArgs args) { if (CollectionChanged != null) { CollectionChanged(this, args); } } #endregion INotifyCollectionChanged #region INotifyPropertyChanged ////// PropertyChanged event (per event PropertyChangedEventHandler INotifyPropertyChanged.PropertyChanged { add { PropertyChanged += value; } remove { PropertyChanged -= value; } } ///). /// /// Occurs when a property changes. /// ////// see [field:NonSerializedAttribute()] protected virtual event PropertyChangedEventHandler PropertyChanged; ////// /// raise PropertyChanged event to any listeners /// protected virtual void OnPropertyChanged(PropertyChangedEventArgs args) { if (PropertyChanged != null) { PropertyChanged(this, args); } } #endregion INotifyPropertyChanged #endregion Interfaces #region Private Methods //------------------------------------------------------ // // Private Methods // //------------------------------------------------------ // forward CollectionChanged events from the base list to our listeners void HandleCollectionChanged(object sender, NotifyCollectionChangedEventArgs e) { OnCollectionChanged(e); } // forward PropertyChanged events from the base list to our listeners void HandlePropertyChanged(object sender, PropertyChangedEventArgs e) { OnPropertyChanged(e); } #endregion Private Methods #region Private Fields //----------------------------------------------------- // // Private Fields // //------------------------------------------------------ #endregion Private Fields } } // 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
- HtmlInputButton.cs
- Vector.cs
- HeaderedItemsControl.cs
- ImageFormatConverter.cs
- BulletedListEventArgs.cs
- ZoneMembershipCondition.cs
- EventMappingSettingsCollection.cs
- ReceiveSecurityHeaderEntry.cs
- WebGetAttribute.cs
- QueryCursorEventArgs.cs
- TaskbarItemInfo.cs
- VisualTreeHelper.cs
- DoubleStorage.cs
- HttpHandlerActionCollection.cs
- EditorAttributeInfo.cs
- PngBitmapDecoder.cs
- SqlVisitor.cs
- RequestTimeoutManager.cs
- ChangePassword.cs
- MaterialCollection.cs
- DataBinding.cs
- ToolStripSettings.cs
- ModelItem.cs
- PointAnimationClockResource.cs
- HttpCookiesSection.cs
- DataComponentMethodGenerator.cs
- OneOfElement.cs
- XmlAtomicValue.cs
- SamlConditions.cs
- ToolStripRendererSwitcher.cs
- DataGridViewRow.cs
- Empty.cs
- ObsoleteAttribute.cs
- CacheDependency.cs
- TypeCodeDomSerializer.cs
- DataSourceCache.cs
- ParameterReplacerVisitor.cs
- SkipStoryboardToFill.cs
- TypeCacheManager.cs
- WebSysDisplayNameAttribute.cs
- ArcSegment.cs
- DesignerValidatorAdapter.cs
- XmlWellformedWriter.cs
- DataGridCheckBoxColumn.cs
- ColorBlend.cs
- HttpModule.cs
- PrinterSettings.cs
- MetadataException.cs
- Icon.cs
- UInt32.cs
- StrongTypingException.cs
- HexParser.cs
- CodeTypeReferenceExpression.cs
- dtdvalidator.cs
- UpdateExpressionVisitor.cs
- AQNBuilder.cs
- panel.cs
- Speller.cs
- DelegateInArgument.cs
- Select.cs
- UidManager.cs
- UniqueIdentifierService.cs
- XmlAutoDetectWriter.cs
- HitTestParameters.cs
- WindowsUpDown.cs
- BitmapCodecInfoInternal.cs
- _ChunkParse.cs
- HiddenFieldPageStatePersister.cs
- FieldReference.cs
- AddInToken.cs
- PropertyToken.cs
- DelegateCompletionCallbackWrapper.cs
- SuppressIldasmAttribute.cs
- ConfigXmlAttribute.cs
- ExtendedPropertyDescriptor.cs
- ELinqQueryState.cs
- WebPartDisplayModeCancelEventArgs.cs
- AssemblySettingAttributes.cs
- DrawingContextWalker.cs
- Base64Decoder.cs
- HashLookup.cs
- BaseTemplateParser.cs
- XmlDocumentViewSchema.cs
- SnapshotChangeTrackingStrategy.cs
- SmiEventSink_Default.cs
- GPPOINT.cs
- SqlClientWrapperSmiStreamChars.cs
- EntityObject.cs
- XmlDocumentSurrogate.cs
- UnmanagedMemoryStreamWrapper.cs
- UniqueEventHelper.cs
- ApplyImportsAction.cs
- DashStyle.cs
- AutomationFocusChangedEventArgs.cs
- XmlSchemaAppInfo.cs
- SQLInt32Storage.cs
- EnlistmentState.cs
- Padding.cs
- FilterElement.cs
- SafeRightsManagementPubHandle.cs