Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- PaperSize.cs
- AccessibleObject.cs
- ProcessHostConfigUtils.cs
- COAUTHINFO.cs
- TimeZoneNotFoundException.cs
- TcpChannelFactory.cs
- ElementNotEnabledException.cs
- ImageListImageEditor.cs
- ToolboxItemCollection.cs
- XmlnsCompatibleWithAttribute.cs
- Enum.cs
- SqlCrossApplyToCrossJoin.cs
- CultureInfo.cs
- TemplatedMailWebEventProvider.cs
- WebExceptionStatus.cs
- ProtocolsConfiguration.cs
- XmlReaderSettings.cs
- Serializer.cs
- ToolStripSeparator.cs
- RsaSecurityTokenAuthenticator.cs
- HtmlImage.cs
- StylusPointPropertyInfoDefaults.cs
- ServiceContractGenerator.cs
- CompoundFileStreamReference.cs
- MdiWindowListStrip.cs
- SectionXmlInfo.cs
- SecurityElement.cs
- SerialErrors.cs
- XmlSerializationReader.cs
- ReflectTypeDescriptionProvider.cs
- SqlFunctionAttribute.cs
- ControlIdConverter.cs
- ToolStripCodeDomSerializer.cs
- IProducerConsumerCollection.cs
- EncryptedPackageFilter.cs
- _BufferOffsetSize.cs
- Composition.cs
- SelectionItemPattern.cs
- ChainOfDependencies.cs
- FormsAuthenticationUser.cs
- IisTraceListener.cs
- ServiceEndpointElement.cs
- SqlDeflator.cs
- TreeViewItem.cs
- IsolatedStoragePermission.cs
- _IPv4Address.cs
- ConnectionStringsExpressionEditor.cs
- Panel.cs
- DataErrorValidationRule.cs
- SpecularMaterial.cs
- AnnotationComponentChooser.cs
- DebugInfoExpression.cs
- MimeTypeMapper.cs
- TypedTableBase.cs
- dsa.cs
- DesignSurfaceServiceContainer.cs
- PreviewPrintController.cs
- ClientRuntimeConfig.cs
- UnsafeNativeMethods.cs
- RootBrowserWindowProxy.cs
- CustomTypeDescriptor.cs
- ControlAdapter.cs
- MissingMethodException.cs
- TextParagraphCache.cs
- IntSecurity.cs
- SoapParser.cs
- AutomationPattern.cs
- ImmutableObjectAttribute.cs
- TransformPattern.cs
- TextDecorationCollectionConverter.cs
- ContentDisposition.cs
- typedescriptorpermission.cs
- XmlCustomFormatter.cs
- Selection.cs
- ActivityCodeDomReferenceService.cs
- SchemaInfo.cs
- DataRelationCollection.cs
- QueryResult.cs
- mongolianshape.cs
- SparseMemoryStream.cs
- ResourceManagerWrapper.cs
- TextEditor.cs
- documentsequencetextcontainer.cs
- XamlPathDataSerializer.cs
- MultitargetUtil.cs
- GenericParameterDataContract.cs
- EventArgs.cs
- SqlHelper.cs
- Point3DCollectionConverter.cs
- PasswordPropertyTextAttribute.cs
- TemplatedEditableDesignerRegion.cs
- Grid.cs
- PolyQuadraticBezierSegmentFigureLogic.cs
- ButtonColumn.cs
- shaper.cs
- DataGridViewLayoutData.cs
- WebPartMenu.cs
- SqlException.cs
- OpenFileDialog.cs
- XmlDataSourceView.cs