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
- IPAddress.cs
- ServicePoint.cs
- SQLStringStorage.cs
- BackStopAuthenticationModule.cs
- MouseEvent.cs
- CapabilitiesUse.cs
- WorkflowServiceNamespace.cs
- IndependentlyAnimatedPropertyMetadata.cs
- RepeatButton.cs
- IPHostEntry.cs
- LiteralControl.cs
- CultureMapper.cs
- SessionEndingEventArgs.cs
- XmlCharCheckingWriter.cs
- VariableQuery.cs
- SqlServices.cs
- DiagnosticStrings.cs
- PeerInputChannel.cs
- TableLayoutPanel.cs
- WebDescriptionAttribute.cs
- RoleManagerModule.cs
- DataKeyArray.cs
- LabelLiteral.cs
- WebBrowser.cs
- SortFieldComparer.cs
- CodeGeneratorOptions.cs
- TableProviderWrapper.cs
- DataControlFieldHeaderCell.cs
- XsltContext.cs
- X509ThumbprintKeyIdentifierClause.cs
- DataGridViewLinkColumn.cs
- IImplicitResourceProvider.cs
- _NegoState.cs
- SQLBytes.cs
- AuthStoreRoleProvider.cs
- LinqDataSourceDisposeEventArgs.cs
- WeakReadOnlyCollection.cs
- SqlDataSourceCustomCommandEditor.cs
- WebPartConnectionsEventArgs.cs
- StyleXamlParser.cs
- LiteralControl.cs
- DependencyProperty.cs
- GroupItemAutomationPeer.cs
- ClockController.cs
- XsltSettings.cs
- SkipStoryboardToFill.cs
- RoutedEvent.cs
- AliasedExpr.cs
- SecurityKeyIdentifier.cs
- DATA_BLOB.cs
- OrthographicCamera.cs
- BitmapDecoder.cs
- PointLightBase.cs
- NativeMethods.cs
- NavigationPropertyEmitter.cs
- ColumnMapCopier.cs
- DataException.cs
- ChangePasswordAutoFormat.cs
- WindowShowOrOpenTracker.cs
- Visual3D.cs
- ImpersonateTokenRef.cs
- ComAdminInterfaces.cs
- SpellerHighlightLayer.cs
- Binding.cs
- GeneralTransform3DGroup.cs
- TextSchema.cs
- JavascriptCallbackBehaviorAttribute.cs
- _FtpControlStream.cs
- StrongNameHelpers.cs
- UserControlBuildProvider.cs
- MissingManifestResourceException.cs
- XmlRootAttribute.cs
- DataGridRowsPresenter.cs
- Transform3DGroup.cs
- XmlSchemaComplexType.cs
- ClientBuildManagerCallback.cs
- SByteStorage.cs
- InputLangChangeRequestEvent.cs
- ExpandCollapseProviderWrapper.cs
- ScrollBarRenderer.cs
- OdbcConnectionPoolProviderInfo.cs
- ZoomPercentageConverter.cs
- NullableConverter.cs
- DrawingVisualDrawingContext.cs
- ToolStripSystemRenderer.cs
- ValueSerializerAttribute.cs
- StringAnimationBase.cs
- SizeF.cs
- CompilerError.cs
- DateBoldEvent.cs
- SeparatorAutomationPeer.cs
- IdnElement.cs
- DragDropHelper.cs
- Package.cs
- Quad.cs
- __FastResourceComparer.cs
- KeyEvent.cs
- GenerateTemporaryAssemblyTask.cs
- RawStylusInputCustomDataList.cs
- IRCollection.cs