Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- DefaultCompensation.cs
- ConsoleTraceListener.cs
- ResourceExpression.cs
- DataBinding.cs
- ObjectStateEntryDbDataRecord.cs
- IpcChannel.cs
- DropSource.cs
- NegotiationTokenProvider.cs
- ScriptIgnoreAttribute.cs
- FixedHyperLink.cs
- AtomMaterializerLog.cs
- DataGridCaption.cs
- FixedPageStructure.cs
- HttpVersion.cs
- AnnotationService.cs
- FormView.cs
- MailDefinition.cs
- ObjectParameterCollection.cs
- MetadataHelper.cs
- LabelDesigner.cs
- RandomNumberGenerator.cs
- ReaderWriterLock.cs
- SimpleLine.cs
- DrawingContextDrawingContextWalker.cs
- TransportConfigurationTypeElementCollection.cs
- SystemFonts.cs
- Array.cs
- AliasExpr.cs
- CodeFieldReferenceExpression.cs
- GorillaCodec.cs
- PermissionAttributes.cs
- ErrorFormatter.cs
- Parsers.cs
- ProcessHostConfigUtils.cs
- EventRoute.cs
- NotifyIcon.cs
- SamlConditions.cs
- ForwardPositionQuery.cs
- TypedReference.cs
- _SafeNetHandles.cs
- UIElementParaClient.cs
- TextTreeDeleteContentUndoUnit.cs
- WebDescriptionAttribute.cs
- TextSelectionProcessor.cs
- EncryptedKey.cs
- DataGridViewColumnHeaderCell.cs
- DesignerActionHeaderItem.cs
- StringCollection.cs
- LinearGradientBrush.cs
- BamlBinaryWriter.cs
- ColumnTypeConverter.cs
- EntityContainerRelationshipSetEnd.cs
- MaterialCollection.cs
- ThreadStartException.cs
- InvalidComObjectException.cs
- PageCodeDomTreeGenerator.cs
- QilSortKey.cs
- Debug.cs
- XsdValidatingReader.cs
- HandledMouseEvent.cs
- JapaneseLunisolarCalendar.cs
- TextRunCacheImp.cs
- ConfigUtil.cs
- SqlDataSourceCache.cs
- DataGridViewSortCompareEventArgs.cs
- RootBrowserWindowProxy.cs
- CodeStatementCollection.cs
- TrustSection.cs
- RegisteredArrayDeclaration.cs
- TimerElapsedEvenArgs.cs
- DesignTimeParseData.cs
- MatrixValueSerializer.cs
- SHA1.cs
- XmlCharacterData.cs
- FrameworkRichTextComposition.cs
- CodeSnippetExpression.cs
- TypeConverterValueSerializer.cs
- GroupStyle.cs
- OdbcInfoMessageEvent.cs
- IPAddressCollection.cs
- HttpPostedFileWrapper.cs
- InputLanguageCollection.cs
- BindingList.cs
- ScriptResourceDefinition.cs
- EventLevel.cs
- HelpEvent.cs
- InternalConfigSettingsFactory.cs
- MaskDescriptors.cs
- TextServicesManager.cs
- RectAnimationUsingKeyFrames.cs
- SQLRoleProvider.cs
- PropertyPathConverter.cs
- ToolstripProfessionalRenderer.cs
- ReflectionHelper.cs
- XPathParser.cs
- FullTextState.cs
- FlowLayoutPanel.cs
- mda.cs
- ConnectorDragDropGlyph.cs
- GlyphShapingProperties.cs