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(ObservableCollection list) : 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(ObservableCollection list) : 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
- XPathSingletonIterator.cs
- ReflectionUtil.cs
- Viewport3DAutomationPeer.cs
- SqlInternalConnectionSmi.cs
- ChannelCredentials.cs
- ConstraintManager.cs
- WindowsPen.cs
- XmlIlVisitor.cs
- ExpressionCopier.cs
- SizeAnimationUsingKeyFrames.cs
- ContractReference.cs
- ConnectionManagementSection.cs
- WrapPanel.cs
- DictationGrammar.cs
- Mapping.cs
- DesignerView.Commands.cs
- DbQueryCommandTree.cs
- CellTreeNode.cs
- FontCollection.cs
- AnalyzedTree.cs
- PrtTicket_Public_Simple.cs
- Policy.cs
- ConsoleKeyInfo.cs
- ConstraintEnumerator.cs
- FormatStringEditor.cs
- SQLInt64Storage.cs
- CodeCompileUnit.cs
- Stackframe.cs
- ToggleButton.cs
- UserNamePasswordValidator.cs
- PanelStyle.cs
- XmlTextWriter.cs
- DataKey.cs
- Ipv6Element.cs
- SignedInfo.cs
- OAVariantLib.cs
- HashCodeCombiner.cs
- PagesChangedEventArgs.cs
- WebAdminConfigurationHelper.cs
- LogSwitch.cs
- WebServiceResponseDesigner.cs
- CompilationRelaxations.cs
- DataGridViewCellStyleConverter.cs
- safelinkcollection.cs
- ModelItemKeyValuePair.cs
- EmptyStringExpandableObjectConverter.cs
- SessionPageStatePersister.cs
- FillErrorEventArgs.cs
- WeakReference.cs
- XmlAttributeCollection.cs
- LinqDataSourceDisposeEventArgs.cs
- ObjectListDesigner.cs
- ItemsPanelTemplate.cs
- InputManager.cs
- XmlMapping.cs
- XMLDiffLoader.cs
- StorageInfo.cs
- DocumentCollection.cs
- ColumnHeaderConverter.cs
- WebPartConnectionCollection.cs
- Parameter.cs
- InlinedAggregationOperator.cs
- cookie.cs
- StringUtil.cs
- UIPermission.cs
- HtmlEncodedRawTextWriter.cs
- BindingContext.cs
- DecimalMinMaxAggregationOperator.cs
- DataBindEngine.cs
- smtppermission.cs
- DataSpaceManager.cs
- EntityContainerEmitter.cs
- HighlightComponent.cs
- MessageProperties.cs
- ClusterRegistryConfigurationProvider.cs
- SchemaCollectionCompiler.cs
- Button.cs
- QuaternionConverter.cs
- TransformPattern.cs
- _HTTPDateParse.cs
- WindowsListViewItemCheckBox.cs
- printdlgexmarshaler.cs
- UrlMapping.cs
- Encoder.cs
- FilterableAttribute.cs
- IgnorePropertiesAttribute.cs
- PlainXmlSerializer.cs
- SerializerDescriptor.cs
- UIElementParaClient.cs
- DocumentViewerHelper.cs
- SwitchDesigner.xaml.cs
- XmlDocumentSerializer.cs
- ConstraintStruct.cs
- CodeMemberField.cs
- XmlNamespaceDeclarationsAttribute.cs
- EventLog.cs
- EpmSourcePathSegment.cs
- DataGridViewSelectedCellsAccessibleObject.cs
- UriExt.cs
- BevelBitmapEffect.cs