Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- TagMapCollection.cs
- MetadataCache.cs
- OleDbSchemaGuid.cs
- ProcessModuleCollection.cs
- RectangleConverter.cs
- DBCommand.cs
- CrossSiteScriptingValidation.cs
- ItemList.cs
- WebPartDescriptionCollection.cs
- HyperlinkAutomationPeer.cs
- PerformanceCounterCategory.cs
- SerializationSectionGroup.cs
- Timeline.cs
- PointCollection.cs
- ObjectStateFormatter.cs
- ToolStripGrip.cs
- EdmSchemaError.cs
- PenContext.cs
- Bitmap.cs
- FormatterConverter.cs
- FormsAuthenticationConfiguration.cs
- HuffCodec.cs
- VectorAnimationUsingKeyFrames.cs
- BrowserCapabilitiesFactory.cs
- TempFiles.cs
- PrintDialog.cs
- ModelItemExtensions.cs
- SchemaType.cs
- StringResourceManager.cs
- CompilerLocalReference.cs
- Collection.cs
- DataGridViewRow.cs
- SchemaTableColumn.cs
- UnionCodeGroup.cs
- Version.cs
- HwndSource.cs
- ViewManagerAttribute.cs
- ComponentRenameEvent.cs
- ImageAttributes.cs
- UnsafeNativeMethodsCLR.cs
- LongPath.cs
- ProgressPage.cs
- DragEvent.cs
- IdentityReference.cs
- DbParameterHelper.cs
- DataKey.cs
- FacetValues.cs
- TypeDependencyAttribute.cs
- CodeAccessSecurityEngine.cs
- SqlEnums.cs
- DataGridViewCellValueEventArgs.cs
- __Error.cs
- TableRowGroup.cs
- DefaultTextStore.cs
- RuleSettingsCollection.cs
- ObservableCollection.cs
- SecurityTokenValidationException.cs
- XmlStreamStore.cs
- MultipartIdentifier.cs
- BufferedGraphicsManager.cs
- AutomationAttributeInfo.cs
- Pointer.cs
- ExceptionHandlerDesigner.cs
- OutputCacheProfile.cs
- EntityModelBuildProvider.cs
- ObjectDataSourceView.cs
- XomlCompilerResults.cs
- SplashScreenNativeMethods.cs
- TreeNodeBinding.cs
- _UriSyntax.cs
- AsymmetricSignatureDeformatter.cs
- QueueProcessor.cs
- MetadataCacheItem.cs
- NotifyParentPropertyAttribute.cs
- RoleGroupCollection.cs
- WebResponse.cs
- PrintDialog.cs
- loginstatus.cs
- BufferedWebEventProvider.cs
- _DisconnectOverlappedAsyncResult.cs
- MetadataArtifactLoader.cs
- FlowDocumentScrollViewer.cs
- X509Utils.cs
- HttpCookie.cs
- CryptoHandle.cs
- ListViewHitTestInfo.cs
- PenThreadPool.cs
- QilCloneVisitor.cs
- CursorInteropHelper.cs
- EditableTreeList.cs
- IisTraceWebEventProvider.cs
- DocumentPageTextView.cs
- ValuePatternIdentifiers.cs
- GridViewColumnCollectionChangedEventArgs.cs
- DecoderReplacementFallback.cs
- SettingsProviderCollection.cs
- xsdvalidator.cs
- NamespaceInfo.cs
- ResourceLoader.cs
- InfoCardArgumentException.cs