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
- SessionEndingCancelEventArgs.cs
- XsltArgumentList.cs
- SoapMessage.cs
- BitmapCodecInfo.cs
- ScrollPatternIdentifiers.cs
- StylusDownEventArgs.cs
- ExpressionVisitor.cs
- MetadataItemEmitter.cs
- ObjectSecurityT.cs
- WeakReferenceList.cs
- BaseValidator.cs
- ObjectConverter.cs
- ResolveNameEventArgs.cs
- SortedList.cs
- SoapException.cs
- OperationContext.cs
- SchemaExporter.cs
- BindableTemplateBuilder.cs
- StylusCaptureWithinProperty.cs
- GrammarBuilderWildcard.cs
- ExtendedPropertyCollection.cs
- MailAddressParser.cs
- CqlGenerator.cs
- GenericsInstances.cs
- Metadata.cs
- RegexGroup.cs
- LineSegment.cs
- ObjectManager.cs
- WebPartCollection.cs
- SubMenuStyleCollection.cs
- GroupStyle.cs
- ExpressionStringBuilder.cs
- XsltConvert.cs
- Section.cs
- ChtmlFormAdapter.cs
- ObjectItemCollection.cs
- FunctionDescription.cs
- CodeDOMProvider.cs
- ControlPaint.cs
- XmlSerializerVersionAttribute.cs
- FontSizeConverter.cs
- DataViewListener.cs
- EditorAttribute.cs
- DataReceivedEventArgs.cs
- GeneratedContractType.cs
- XmlTextWriter.cs
- PinProtectionHelper.cs
- DesignBindingConverter.cs
- OleDbDataAdapter.cs
- RectAnimationBase.cs
- TempFiles.cs
- KnownBoxes.cs
- WebPartConnectionsCancelEventArgs.cs
- DocumentsTrace.cs
- WebPageTraceListener.cs
- HttpProfileBase.cs
- TileBrush.cs
- ScrollBar.cs
- StackSpiller.Temps.cs
- QilTernary.cs
- WebControlAdapter.cs
- QilStrConcat.cs
- CreateSequenceResponse.cs
- OptimizedTemplateContent.cs
- HMACSHA512.cs
- DocumentsTrace.cs
- PluralizationService.cs
- RawStylusActions.cs
- MemoryRecordBuffer.cs
- NativeMethods.cs
- TextEditor.cs
- RTLAwareMessageBox.cs
- ColumnWidthChangingEvent.cs
- Point3D.cs
- DataGridViewColumnEventArgs.cs
- IdentityNotMappedException.cs
- DbMetaDataFactory.cs
- GridViewCancelEditEventArgs.cs
- FilterRepeater.cs
- WebRequestModulesSection.cs
- FileNameEditor.cs
- PriorityBinding.cs
- DiscoveryReferences.cs
- LinqDataSourceHelper.cs
- InputLanguage.cs
- MultiTrigger.cs
- IOException.cs
- FrameworkTemplate.cs
- HttpStreamMessage.cs
- Link.cs
- SharedPersonalizationStateInfo.cs
- CredentialManagerDialog.cs
- ImportContext.cs
- TrackingStringDictionary.cs
- NullRuntimeConfig.cs
- ReflectionTypeLoadException.cs
- UnitySerializationHolder.cs
- ActivityInfo.cs
- RegistryHandle.cs
- KeySplineConverter.cs