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
- WindowsProgressbar.cs
- ListControlDataBindingHandler.cs
- XmlReaderDelegator.cs
- BitmapImage.cs
- StructuredTypeEmitter.cs
- HttpHandler.cs
- NetworkCredential.cs
- StatusBar.cs
- CompatibleComparer.cs
- GradientStop.cs
- XmlSchemaSequence.cs
- MenuRenderer.cs
- unitconverter.cs
- ServiceModelSecurityTokenTypes.cs
- AttributeSetAction.cs
- VectorAnimationUsingKeyFrames.cs
- SqlRewriteScalarSubqueries.cs
- X509SecurityToken.cs
- CodeFieldReferenceExpression.cs
- DataColumnChangeEvent.cs
- DeflateStream.cs
- ListViewItemEventArgs.cs
- ComboBox.cs
- XmlSchemaAny.cs
- MailDefinition.cs
- PaginationProgressEventArgs.cs
- WindowsListBox.cs
- WebBrowser.cs
- XmlQualifiedNameTest.cs
- InProcStateClientManager.cs
- TypeInfo.cs
- PassportAuthenticationModule.cs
- HttpCapabilitiesSectionHandler.cs
- StringBuilder.cs
- InlineUIContainer.cs
- TreeNodeSelectionProcessor.cs
- PropertyEmitterBase.cs
- DataGrid.cs
- ConstructorBuilder.cs
- RolePrincipal.cs
- EntityTransaction.cs
- ApplicationSecurityInfo.cs
- KeyNotFoundException.cs
- BinaryMethodMessage.cs
- FreezableCollection.cs
- ScriptingProfileServiceSection.cs
- ETagAttribute.cs
- SQLSingleStorage.cs
- PopupRootAutomationPeer.cs
- ToolstripProfessionalRenderer.cs
- CommaDelimitedStringAttributeCollectionConverter.cs
- Label.cs
- TraceUtility.cs
- XmlMapping.cs
- SessionPageStateSection.cs
- activationcontext.cs
- BulletDecorator.cs
- WebHttpBindingCollectionElement.cs
- Transactions.cs
- SqlCacheDependencyDatabase.cs
- ReadOnlyDictionary.cs
- _SSPISessionCache.cs
- ParseElement.cs
- TrustManager.cs
- MatrixAnimationUsingPath.cs
- CompilerGeneratedAttribute.cs
- ManipulationPivot.cs
- SqlDependency.cs
- EmptyTextWriter.cs
- Style.cs
- IndentTextWriter.cs
- TextDecorationCollectionConverter.cs
- XmlUtil.cs
- KeyedCollection.cs
- IndicCharClassifier.cs
- MinMaxParagraphWidth.cs
- InvalidFilterCriteriaException.cs
- HtmlTable.cs
- ValidatedControlConverter.cs
- SqlIdentifier.cs
- EventProviderTraceListener.cs
- Style.cs
- AutomationEventArgs.cs
- ValuePatternIdentifiers.cs
- SafeNativeMemoryHandle.cs
- RefreshPropertiesAttribute.cs
- PermissionSet.cs
- ContentPresenter.cs
- SQLGuidStorage.cs
- FileNotFoundException.cs
- FontDialog.cs
- MemoryMappedViewStream.cs
- SQLGuid.cs
- BrowserCapabilitiesFactory.cs
- TreeNodeBindingDepthConverter.cs
- DSASignatureDeformatter.cs
- DataGridColumnReorderingEventArgs.cs
- EditorZoneAutoFormat.cs
- WizardPanelChangingEventArgs.cs
- DirectoryRedirect.cs