Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / 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: http://avalon/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.
//----------------------------------------------------------------------------
//
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//
// Description: Defines BindingList object, a list of binds.
//
// Specs: http://avalon/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
- DependencyPropertyKey.cs
- dbdatarecord.cs
- SuppressMessageAttribute.cs
- CompiledXpathExpr.cs
- ComAdminInterfaces.cs
- TableCell.cs
- DictionaryCustomTypeDescriptor.cs
- ControlEvent.cs
- ConsoleTraceListener.cs
- TagNameToTypeMapper.cs
- Help.cs
- NativeObjectSecurity.cs
- AuthenticationService.cs
- safesecurityhelperavalon.cs
- Rules.cs
- InfiniteTimeSpanConverter.cs
- NavigationPropertySingletonExpression.cs
- SmtpMail.cs
- BasicExpandProvider.cs
- Deflater.cs
- XmlComment.cs
- InvalidOleVariantTypeException.cs
- TrackingMemoryStream.cs
- FileCodeGroup.cs
- FixedBufferAttribute.cs
- FileSecurity.cs
- ConstraintEnumerator.cs
- ObjectDataSourceView.cs
- WebPartDisplayModeEventArgs.cs
- ToolboxComponentsCreatingEventArgs.cs
- ProgressBarBrushConverter.cs
- ButtonChrome.cs
- ResXDataNode.cs
- ISFTagAndGuidCache.cs
- FakeModelItemImpl.cs
- SqlProfileProvider.cs
- DataColumnChangeEvent.cs
- ByteArrayHelperWithString.cs
- InternalConfigConfigurationFactory.cs
- Deflater.cs
- TemplateBindingExtension.cs
- MailDefinition.cs
- ContainerFilterService.cs
- MetadataCache.cs
- GridViewSortEventArgs.cs
- TextFormatterHost.cs
- ErrorsHelper.cs
- UserControlAutomationPeer.cs
- DataGridViewColumnCollection.cs
- TypeNameParser.cs
- MemoryFailPoint.cs
- SmtpReplyReaderFactory.cs
- ByeMessageApril2005.cs
- FixedTextView.cs
- FileDataSourceCache.cs
- OdbcCommand.cs
- CleanUpVirtualizedItemEventArgs.cs
- XmlBindingWorker.cs
- XpsFilter.cs
- FilterQueryOptionExpression.cs
- Misc.cs
- QilTernary.cs
- WebSysDefaultValueAttribute.cs
- FileAccessException.cs
- CompositeFontFamily.cs
- BamlWriter.cs
- ArglessEventHandlerProxy.cs
- SchemaElementDecl.cs
- SqlRowUpdatedEvent.cs
- TdsParameterSetter.cs
- Wizard.cs
- TextWriter.cs
- WizardStepBase.cs
- PropertyTab.cs
- FixedLineResult.cs
- Thread.cs
- Matrix3DStack.cs
- QualifiedCellIdBoolean.cs
- WebPartTransformer.cs
- OperationAbortedException.cs
- AssemblyResourceLoader.cs
- InternalResources.cs
- TraceUtility.cs
- MemberRestriction.cs
- MainMenu.cs
- ConfigurationManagerHelper.cs
- ClientTargetCollection.cs
- CachedTypeface.cs
- ToolStrip.cs
- ForwardPositionQuery.cs
- PrinterResolution.cs
- SynchronizedInputHelper.cs
- Paragraph.cs
- SchemaInfo.cs
- ObfuscationAttribute.cs
- OutputScopeManager.cs
- CharacterBuffer.cs
- ThrowHelper.cs
- TextElement.cs
- Size.cs