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
- Point.cs
- ExtendedPropertyCollection.cs
- SingleResultAttribute.cs
- UIElement3D.cs
- PackageRelationship.cs
- StylusPointProperty.cs
- AnnotationHelper.cs
- ErrorWrapper.cs
- RightsManagementEncryptionTransform.cs
- HttpRequest.cs
- CachedPathData.cs
- FieldDescriptor.cs
- odbcmetadatacolumnnames.cs
- WebConfigurationManager.cs
- ZipIOLocalFileDataDescriptor.cs
- PathSegment.cs
- PolicyLevel.cs
- MetafileHeader.cs
- OleDbRowUpdatingEvent.cs
- WindowsListViewGroupSubsetLink.cs
- CurrencyManager.cs
- CommonObjectSecurity.cs
- SessionEndingEventArgs.cs
- xmlfixedPageInfo.cs
- HashHelpers.cs
- SHA512Managed.cs
- CanExecuteRoutedEventArgs.cs
- SubclassTypeValidator.cs
- DesignerLoader.cs
- CodeAssignStatement.cs
- AttachedAnnotationChangedEventArgs.cs
- TryExpression.cs
- EntityContainerEntitySet.cs
- SqlClientWrapperSmiStreamChars.cs
- DocumentSchemaValidator.cs
- TokenizerHelper.cs
- ColumnPropertiesGroup.cs
- LinqDataSourceStatusEventArgs.cs
- RelationalExpressions.cs
- DecryptRequest.cs
- ClosableStream.cs
- MetadataFile.cs
- Calendar.cs
- ToolStripContentPanelDesigner.cs
- SamlConstants.cs
- ToolStripSystemRenderer.cs
- ImageAnimator.cs
- PasswordDeriveBytes.cs
- WinHttpWebProxyFinder.cs
- Codec.cs
- ContextQuery.cs
- XmlSerializerNamespaces.cs
- ProviderCollection.cs
- XmlSchemaType.cs
- ObjectStorage.cs
- UIElement.cs
- XmlDataSourceView.cs
- HttpResponseHeader.cs
- ThrowHelper.cs
- SafeEventLogReadHandle.cs
- ArraySubsetEnumerator.cs
- CompositeActivityTypeDescriptor.cs
- MimeMapping.cs
- CategoryAttribute.cs
- httpstaticobjectscollection.cs
- ListViewInsertionMark.cs
- HuffCodec.cs
- HtmlInputImage.cs
- HitTestWithPointDrawingContextWalker.cs
- IsolatedStoragePermission.cs
- safelinkcollection.cs
- Int16KeyFrameCollection.cs
- ProcessModuleCollection.cs
- ConfigurationSectionGroupCollection.cs
- ClassHandlersStore.cs
- MsmqIntegrationProcessProtocolHandler.cs
- Bitmap.cs
- DisableDpiAwarenessAttribute.cs
- HttpSessionStateWrapper.cs
- Attributes.cs
- CodeDirectoryCompiler.cs
- RawAppCommandInputReport.cs
- BitmapEffectDrawing.cs
- XmlBoundElement.cs
- srgsitem.cs
- SoapInteropTypes.cs
- SyndicationLink.cs
- SubMenuStyle.cs
- IntSecurity.cs
- DetailsViewAutoFormat.cs
- IDReferencePropertyAttribute.cs
- OlePropertyStructs.cs
- DocumentReference.cs
- RMPublishingDialog.cs
- OleStrCAMarshaler.cs
- DefaultObjectMappingItemCollection.cs
- CodeGroup.cs
- DbMetaDataFactory.cs
- MetadataHelper.cs
- PrtCap_Builder.cs