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
- ToolStripPanelDesigner.cs
- Pair.cs
- InkSerializer.cs
- DefaultParameterValueAttribute.cs
- EnterpriseServicesHelper.cs
- TraceContext.cs
- UIHelper.cs
- Content.cs
- CodeSubDirectory.cs
- LinqDataSourceSelectEventArgs.cs
- BindingExpression.cs
- QuadraticBezierSegment.cs
- ObjectDataProvider.cs
- HttpTransportBindingElement.cs
- ApplicationSecurityInfo.cs
- FacetDescription.cs
- ChineseLunisolarCalendar.cs
- GridViewSelectEventArgs.cs
- dataSvcMapFileLoader.cs
- ViewManager.cs
- BasicDesignerLoader.cs
- HtmlShim.cs
- TransportContext.cs
- XmlKeywords.cs
- PopupEventArgs.cs
- WebBrowserDocumentCompletedEventHandler.cs
- EmptyWorkItem.cs
- DataGridViewCellToolTipTextNeededEventArgs.cs
- SpecialTypeDataContract.cs
- TextSegment.cs
- BasePattern.cs
- AsymmetricAlgorithm.cs
- UserNameSecurityToken.cs
- Debug.cs
- SystemBrushes.cs
- ExternalException.cs
- Cursor.cs
- ObjectView.cs
- MethodCallTranslator.cs
- TextTreeInsertElementUndoUnit.cs
- BitmapEffectGroup.cs
- InheritanceService.cs
- DataGridDefaultColumnWidthTypeConverter.cs
- TextBox.cs
- UrlRoutingHandler.cs
- GeneralTransform3D.cs
- XmlSchemaProviderAttribute.cs
- SoapFormatExtensions.cs
- ExecutedRoutedEventArgs.cs
- CapabilitiesRule.cs
- NameTable.cs
- TargetException.cs
- BitmapEffectInputData.cs
- SqlConnectionStringBuilder.cs
- ContainerSelectorBehavior.cs
- SoapFormatter.cs
- SplitterPanel.cs
- WaveHeader.cs
- sapiproxy.cs
- SpoolingTask.cs
- XmlDataDocument.cs
- ZipFileInfo.cs
- OleDbConnectionInternal.cs
- TableColumnCollectionInternal.cs
- SafeThemeHandle.cs
- OutputCacheProfile.cs
- DecimalAnimationUsingKeyFrames.cs
- Italic.cs
- ReadOnlyPermissionSet.cs
- ResourcePermissionBaseEntry.cs
- DocumentSequenceHighlightLayer.cs
- TableLayoutStyleCollection.cs
- TableItemProviderWrapper.cs
- OleDbEnumerator.cs
- VScrollBar.cs
- ContextMenuService.cs
- ToolStripRenderEventArgs.cs
- JournalNavigationScope.cs
- ButtonChrome.cs
- StrongNameSignatureInformation.cs
- ContextInformation.cs
- RealizationContext.cs
- NameValuePermission.cs
- SelectionRange.cs
- ListBoxItemAutomationPeer.cs
- WebServicesDescriptionAttribute.cs
- CoreSwitches.cs
- ArgumentsParser.cs
- CompiledRegexRunnerFactory.cs
- CodeConditionStatement.cs
- TraceListener.cs
- ButtonPopupAdapter.cs
- MetadataItemEmitter.cs
- ReliableOutputConnection.cs
- _Semaphore.cs
- HtmlSelect.cs
- KerberosReceiverSecurityToken.cs
- ACE.cs
- DependencyPropertyDescriptor.cs
- Oid.cs