Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Base / System / Collections / ObjectModel / ReadOnlyObservableCollection.cs / 1 / 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; namespace System.Collections.ObjectModel { ////// Read-only wrapper around an ObservableCollection. /// [Serializable()] 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; namespace System.Collections.ObjectModel { ////// Read-only wrapper around an ObservableCollection. /// [Serializable()] 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
- CommandLibraryHelper.cs
- ComponentCodeDomSerializer.cs
- FormsAuthenticationEventArgs.cs
- ListViewCommandEventArgs.cs
- DataControlFieldCollection.cs
- VirtualPathData.cs
- Claim.cs
- FormViewModeEventArgs.cs
- AuditLogLocation.cs
- EncryptedType.cs
- HttpCookiesSection.cs
- DetailsViewAutoFormat.cs
- IconEditor.cs
- ListViewPagedDataSource.cs
- QuaternionValueSerializer.cs
- ByteStorage.cs
- FullTextState.cs
- RawStylusSystemGestureInputReport.cs
- WeakKeyDictionary.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- KeyValuePair.cs
- PerspectiveCamera.cs
- CompoundFileStorageReference.cs
- PeerCollaborationPermission.cs
- XmlNamespaceMappingCollection.cs
- TextDecorationCollection.cs
- ReflectPropertyDescriptor.cs
- InternalDispatchObject.cs
- NavigationEventArgs.cs
- EdgeModeValidation.cs
- Validator.cs
- AnnotationObservableCollection.cs
- ListViewGroupConverter.cs
- GeometryCollection.cs
- SingleConverter.cs
- DecimalFormatter.cs
- CacheDependency.cs
- BuiltInExpr.cs
- ScaleTransform.cs
- CountdownEvent.cs
- XmlSortKeyAccumulator.cs
- XmlAttributes.cs
- DocumentViewerHelper.cs
- ValidatingPropertiesEventArgs.cs
- PartitionedStream.cs
- FontSource.cs
- _NegoState.cs
- WhileDesigner.cs
- ValidatorCompatibilityHelper.cs
- processwaithandle.cs
- FontInfo.cs
- SystemColors.cs
- DataGridBeginningEditEventArgs.cs
- Baml2006ReaderFrame.cs
- HttpResponse.cs
- ResourcePermissionBase.cs
- ValidatorCollection.cs
- XmlValidatingReaderImpl.cs
- DataGridViewSelectedRowCollection.cs
- DnsPermission.cs
- WindowsToolbarAsMenu.cs
- WrappedIUnknown.cs
- NumberSubstitution.cs
- TransformerTypeCollection.cs
- UnsignedPublishLicense.cs
- DesignerTransactionCloseEvent.cs
- AnnotationAuthorChangedEventArgs.cs
- WebPartZoneCollection.cs
- XmlSchemaObject.cs
- Native.cs
- Literal.cs
- MessageFilterException.cs
- SimplePropertyEntry.cs
- GridItem.cs
- CultureInfoConverter.cs
- LongSumAggregationOperator.cs
- MessageQueueEnumerator.cs
- Literal.cs
- Pair.cs
- sqlnorm.cs
- DrawItemEvent.cs
- ComplexLine.cs
- XmlBaseWriter.cs
- KnownIds.cs
- CodeExpressionStatement.cs
- UpdatableWrapper.cs
- UnsafeNativeMethods.cs
- SecurityTokenException.cs
- FontCacheUtil.cs
- RightsManagementLicense.cs
- ActiveXSite.cs
- SqlDataSourceSelectingEventArgs.cs
- BitmapEffectInputData.cs
- _Win32.cs
- DllNotFoundException.cs
- SequenceDesignerAccessibleObject.cs
- Encoder.cs
- GifBitmapDecoder.cs
- Header.cs
- HeaderedContentControl.cs