Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Framework / MS / Internal / Data / BindingCollection.cs / 1 / BindingCollection.cs
//----------------------------------------------------------------------------
//
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//
// Description: Defines BindingList object, a list of binds.
//
// Specs: [....]/connecteddata/M5%20Specs/UIBind.mht
//
//---------------------------------------------------------------------------
using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Diagnostics;
using System.Windows;
using System.Windows.Markup;
using System.Windows.Data;
using MS.Utility;
using MS.Internal;
namespace MS.Internal.Data
{
///
/// A list of bindingss, used by MultiBinding classes.
///
internal class BindingCollection : Collection
{
//-----------------------------------------------------
//
// Constructors
//
//-----------------------------------------------------
/// Constructor
internal BindingCollection(BindingBase owner, BindingCollectionChangedCallback callback)
{
Invariant.Assert(owner != null && callback != null);
_owner = owner;
_collectionChangedCallback = callback;
}
// disable default constructor
private BindingCollection()
{
}
//------------------------------------------------------
//
// Protected Methods
//
//-----------------------------------------------------
#region Protected Methods
///
/// called by base class Collection<T> when the list is being cleared;
/// raises a CollectionChanged event to any listeners
///
protected override void ClearItems()
{
_owner.CheckSealed();
base.ClearItems();
OnBindingCollectionChanged();
}
///
/// called by base class Collection<T> when an item is removed from list;
/// raises a CollectionChanged event to any listeners
///
protected override void RemoveItem(int index)
{
_owner.CheckSealed();
base.RemoveItem(index);
OnBindingCollectionChanged();
}
///
/// called by base class Collection<T> when an item is added to list;
/// raises a CollectionChanged event to any listeners
///
protected override void InsertItem(int index, BindingBase item)
{
if (item == null)
throw new ArgumentNullException("item");
ValidateItem(item);
_owner.CheckSealed();
base.InsertItem(index, item);
OnBindingCollectionChanged();
}
///
/// called by base class Collection<T> when an item is added to list;
/// raises a CollectionChanged event to any listeners
///
protected override void SetItem(int index, BindingBase item)
{
if (item == null)
throw new ArgumentNullException("item");
ValidateItem(item);
_owner.CheckSealed();
base.SetItem(index, item);
OnBindingCollectionChanged();
}
#endregion Protected Methods
//------------------------------------------------------
//
// Private Methods
//
//------------------------------------------------------
void ValidateItem(BindingBase binding)
{
// for V1, we only allow Binding as an item of BindingCollection.
if (!(binding is Binding))
throw new NotSupportedException(SR.Get(SRID.BindingCollectionContainsNonBinding, binding.GetType().Name));
}
void OnBindingCollectionChanged()
{
if (_collectionChangedCallback != null)
_collectionChangedCallback();
}
//-----------------------------------------------------
//
// Private Fields
//
//------------------------------------------------------
BindingBase _owner;
private BindingCollectionChangedCallback _collectionChangedCallback;
}
// the delegate to use for getting BindingListChanged notifications
internal delegate void BindingCollectionChangedCallback();
}
// 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
- DataGridViewCellStyleChangedEventArgs.cs
- IItemProperties.cs
- FormsAuthenticationConfiguration.cs
- HtmlInputImage.cs
- TraceSection.cs
- ProtocolsConfigurationEntry.cs
- SqlMetaData.cs
- AdCreatedEventArgs.cs
- StringArrayConverter.cs
- ModuleBuilderData.cs
- SiteIdentityPermission.cs
- CurrencyManager.cs
- PictureBoxDesigner.cs
- XmlNamespaceDeclarationsAttribute.cs
- RestHandlerFactory.cs
- IERequestCache.cs
- ExchangeUtilities.cs
- GridViewRowEventArgs.cs
- PermissionSet.cs
- CookielessData.cs
- UpdateProgress.cs
- WorkflowEnvironment.cs
- ArrayElementGridEntry.cs
- EventEntry.cs
- DataGridSortingEventArgs.cs
- WebPartZone.cs
- WebDescriptionAttribute.cs
- WmfPlaceableFileHeader.cs
- _KerberosClient.cs
- MsmqHostedTransportManager.cs
- LayoutUtils.cs
- SqlNodeAnnotations.cs
- SynchronizingStream.cs
- BuildResult.cs
- XsltContext.cs
- LineGeometry.cs
- ScrollContentPresenter.cs
- _OverlappedAsyncResult.cs
- Application.cs
- AuthenticateEventArgs.cs
- BitmapEffectrendercontext.cs
- VectorAnimation.cs
- WebPartDisplayModeCollection.cs
- SupportsEventValidationAttribute.cs
- __FastResourceComparer.cs
- WindowsAuthenticationModule.cs
- DataSourceXmlSerializationAttribute.cs
- ConditionBrowserDialog.cs
- ToolBar.cs
- ZipIOFileItemStream.cs
- GraphicsState.cs
- VerificationException.cs
- GenericWebPart.cs
- LocationSectionRecord.cs
- DataServiceQueryOfT.cs
- XamlStyleSerializer.cs
- PartialCachingAttribute.cs
- HorizontalAlignConverter.cs
- PageContentCollection.cs
- InfoCardRSAPKCS1SignatureDeformatter.cs
- OdbcConnectionPoolProviderInfo.cs
- ThreadInterruptedException.cs
- NamedPermissionSet.cs
- SmtpCommands.cs
- Serializer.cs
- CacheForPrimitiveTypes.cs
- AppendHelper.cs
- ScrollPattern.cs
- CompiledQueryCacheEntry.cs
- XmlSchemaSubstitutionGroup.cs
- LinearQuaternionKeyFrame.cs
- GridViewColumnCollection.cs
- ComplexBindingPropertiesAttribute.cs
- MarkupExtensionParser.cs
- MachineKeySection.cs
- PassportAuthentication.cs
- TransactionsSectionGroup.cs
- IteratorFilter.cs
- ScrollProperties.cs
- ReferentialConstraint.cs
- DataComponentGenerator.cs
- WebPartVerbCollection.cs
- Timer.cs
- COM2ExtendedBrowsingHandler.cs
- ColumnMapCopier.cs
- ProcessHostConfigUtils.cs
- SynchronizedMessageSource.cs
- LingerOption.cs
- EditorPartCollection.cs
- SchemaAttDef.cs
- XmlSerializableServices.cs
- ProcessProtocolHandler.cs
- InterleavedZipPartStream.cs
- HighlightComponent.cs
- TabControlDesigner.cs
- DataColumnChangeEvent.cs
- TileBrush.cs
- AutomationAttributeInfo.cs
- LambdaCompiler.Expressions.cs
- FixUpCollection.cs