Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / MS / Internal / Data / BindingCollection.cs / 1305600 / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SizeF.cs
- TextParaClient.cs
- PrimitiveRenderer.cs
- ApplicationBuildProvider.cs
- Substitution.cs
- QueryReaderSettings.cs
- ObjectDataSourceMethodEventArgs.cs
- ChangeNode.cs
- MsiStyleLogWriter.cs
- TextTrailingWordEllipsis.cs
- ErrorEventArgs.cs
- FakeModelPropertyImpl.cs
- JoinTreeNode.cs
- COM2ExtendedUITypeEditor.cs
- DateRangeEvent.cs
- UndoManager.cs
- SizeChangedInfo.cs
- GregorianCalendar.cs
- DatatypeImplementation.cs
- SystemIPAddressInformation.cs
- FixedSOMFixedBlock.cs
- WebPartsPersonalizationAuthorization.cs
- Viewport3DAutomationPeer.cs
- ManualResetEvent.cs
- UnsafeNativeMethods.cs
- ManualResetEvent.cs
- RecognitionResult.cs
- documentsequencetextcontainer.cs
- HierarchicalDataSourceDesigner.cs
- HtmlInputPassword.cs
- XmlTypeMapping.cs
- SpeakCompletedEventArgs.cs
- DesignerToolboxInfo.cs
- MemberInfoSerializationHolder.cs
- QuaternionIndependentAnimationStorage.cs
- RolePrincipal.cs
- ProvideValueServiceProvider.cs
- DbConnectionPool.cs
- StrokeNode.cs
- TextTreePropertyUndoUnit.cs
- CellTreeSimplifier.cs
- DataGridViewRowCollection.cs
- OrderToken.cs
- TextInfo.cs
- EmbeddedMailObject.cs
- WebAdminConfigurationHelper.cs
- X509CertificateInitiatorClientCredential.cs
- SynchronizationValidator.cs
- DynamicVirtualDiscoSearcher.cs
- SystemSounds.cs
- MSAAWinEventWrap.cs
- ResourceDisplayNameAttribute.cs
- SeekStoryboard.cs
- DataGridViewSelectedRowCollection.cs
- SettingsPropertyNotFoundException.cs
- ToolStripSeparator.cs
- ValidationError.cs
- AppLevelCompilationSectionCache.cs
- MsmqException.cs
- wgx_commands.cs
- WmlValidationSummaryAdapter.cs
- KeyProperty.cs
- BrowserCapabilitiesCompiler.cs
- MetadataArtifactLoaderCompositeResource.cs
- TransformPattern.cs
- DataErrorValidationRule.cs
- HtmlUtf8RawTextWriter.cs
- CodeIdentifier.cs
- IdleTimeoutMonitor.cs
- ControlPager.cs
- XmlNodeChangedEventArgs.cs
- LogRestartAreaEnumerator.cs
- WebRequest.cs
- LookupBindingPropertiesAttribute.cs
- VirtualizedItemPattern.cs
- FontFamily.cs
- RuntimeComponentFilter.cs
- TriggerAction.cs
- IfAction.cs
- XmlQualifiedName.cs
- StickyNoteHelper.cs
- TimeoutException.cs
- DataGridViewToolTip.cs
- UnsafeNativeMethods.cs
- SerializationEventsCache.cs
- RoleGroupCollection.cs
- ILGen.cs
- IdleTimeoutMonitor.cs
- HttpHandlerActionCollection.cs
- FrameAutomationPeer.cs
- ListContractAdapter.cs
- XPathEmptyIterator.cs
- SafeFileHandle.cs
- NonSerializedAttribute.cs
- ProcessHostConfigUtils.cs
- CompositeDataBoundControl.cs
- ISAPIRuntime.cs
- CompareValidator.cs
- QualifierSet.cs
- MessageBox.cs