Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- BitmapScalingModeValidation.cs
- PathData.cs
- DropDownButton.cs
- Soap11ServerProtocol.cs
- VariableDesigner.xaml.cs
- LoadRetryStrategyFactory.cs
- DataSourceHelper.cs
- COM2Enum.cs
- ClientRuntimeConfig.cs
- AttributeUsageAttribute.cs
- DataSetViewSchema.cs
- EDesignUtil.cs
- PasswordRecovery.cs
- LogExtentCollection.cs
- SimpleMailWebEventProvider.cs
- EnumerableCollectionView.cs
- MiniParameterInfo.cs
- DataControlLinkButton.cs
- StateMachineTimers.cs
- XmlUtil.cs
- SQLInt16.cs
- ViewBox.cs
- FormViewUpdatedEventArgs.cs
- WindowsStreamSecurityUpgradeProvider.cs
- XmlSchemaImporter.cs
- DataGridTableCollection.cs
- BooleanAnimationUsingKeyFrames.cs
- BuildResult.cs
- VariableElement.cs
- ItemsPresenter.cs
- BadImageFormatException.cs
- FactoryRecord.cs
- ParseHttpDate.cs
- ObservableCollectionDefaultValueFactory.cs
- SynchronizedPool.cs
- DateTimeValueSerializerContext.cs
- Queue.cs
- SchemaManager.cs
- ScriptingSectionGroup.cs
- SimpleExpression.cs
- _SSPIWrapper.cs
- NotifyInputEventArgs.cs
- Axis.cs
- HtmlMeta.cs
- RegexWriter.cs
- XmlSchemaSubstitutionGroup.cs
- ActionNotSupportedException.cs
- ValidationEventArgs.cs
- DesignTimeValidationFeature.cs
- HttpPostedFile.cs
- Misc.cs
- SystemUdpStatistics.cs
- Debug.cs
- UiaCoreProviderApi.cs
- CodeExpressionRuleDeclaration.cs
- SafeJobHandle.cs
- ReferenceConverter.cs
- FunctionNode.cs
- TextOutput.cs
- TypeInfo.cs
- OutputCacheSettingsSection.cs
- DataGridViewCellStyle.cs
- WindowsTitleBar.cs
- XmlSchemaGroupRef.cs
- BamlBinaryReader.cs
- RSAProtectedConfigurationProvider.cs
- EntityConnectionStringBuilderItem.cs
- PointCollectionConverter.cs
- CommunicationObjectManager.cs
- ToolStripRenderer.cs
- WebBrowsableAttribute.cs
- UIElementCollection.cs
- DefinitionBase.cs
- URLAttribute.cs
- RenamedEventArgs.cs
- DictionarySectionHandler.cs
- DataGridRowDetailsEventArgs.cs
- GreenMethods.cs
- BindMarkupExtensionSerializer.cs
- MSAAEventDispatcher.cs
- SqlTransaction.cs
- ValidatorCollection.cs
- TemplateNameScope.cs
- ScrollChrome.cs
- DataSourceView.cs
- CultureInfo.cs
- WebEncodingValidator.cs
- TextTreePropertyUndoUnit.cs
- EncodingTable.cs
- DataContractSerializerServiceBehavior.cs
- PrinterUnitConvert.cs
- DebugInfoGenerator.cs
- XmlSignatureManifest.cs
- DocumentCollection.cs
- StylusDevice.cs
- ClonableStack.cs
- ArrangedElement.cs
- NetworkInterface.cs
- GridViewColumnHeaderAutomationPeer.cs
- ExpressionStringBuilder.cs