Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / 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: [....]/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
- DelegatedStream.cs
- IdentifierService.cs
- IIS7UserPrincipal.cs
- SafeHandles.cs
- ScopeElement.cs
- Currency.cs
- WebPartEditorOkVerb.cs
- RegistrationContext.cs
- JsonGlobals.cs
- CompositeScriptReferenceEventArgs.cs
- WinFormsSecurity.cs
- RichTextBox.cs
- DataGridViewCellMouseEventArgs.cs
- ControlCommandSet.cs
- AuthenticationService.cs
- pingexception.cs
- DataGridViewRowPrePaintEventArgs.cs
- GenericIdentity.cs
- LoginUtil.cs
- UrlMappingsSection.cs
- Attributes.cs
- UInt32.cs
- SvcFileManager.cs
- EmptyReadOnlyDictionaryInternal.cs
- LinkButton.cs
- ActiveXContainer.cs
- ConfigsHelper.cs
- StorageEntitySetMapping.cs
- IncrementalReadDecoders.cs
- GroupBoxRenderer.cs
- DataSourceXmlClassAttribute.cs
- Highlights.cs
- SafeNativeMemoryHandle.cs
- RealizationContext.cs
- AuthorizationRuleCollection.cs
- GenericRootAutomationPeer.cs
- SaveFileDialog.cs
- LoginUtil.cs
- UndirectedGraph.cs
- AsyncPostBackErrorEventArgs.cs
- PointCollection.cs
- webbrowsersite.cs
- XmlAttributes.cs
- updatecommandorderer.cs
- NumberSubstitution.cs
- Compress.cs
- BitmapEffectDrawingContextWalker.cs
- EntityDataSourceStatementEditor.cs
- DecoderNLS.cs
- oledbmetadatacollectionnames.cs
- IChannel.cs
- LayoutEvent.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- SqlConnectionHelper.cs
- UInt64.cs
- TypeForwardedToAttribute.cs
- DispatcherHookEventArgs.cs
- Label.cs
- HyperLinkField.cs
- DSASignatureFormatter.cs
- SqlMethods.cs
- CaretElement.cs
- XmlIncludeAttribute.cs
- TypeGeneratedEventArgs.cs
- IImplicitResourceProvider.cs
- FormatException.cs
- Int32Rect.cs
- InheritanceContextHelper.cs
- UpDownEvent.cs
- SoapAttributeAttribute.cs
- HwndSubclass.cs
- ToolStripMenuItem.cs
- ControlUtil.cs
- IdentityManager.cs
- TraceInternal.cs
- FlowSwitch.cs
- CommonDialog.cs
- GetPageNumberCompletedEventArgs.cs
- BamlResourceContent.cs
- EditorZoneBase.cs
- MetadataFile.cs
- LogReservationCollection.cs
- DesignConnectionCollection.cs
- ListViewEditEventArgs.cs
- DocumentGridContextMenu.cs
- IsolatedStorageFileStream.cs
- Attributes.cs
- ServicePoint.cs
- ElementUtil.cs
- NegatedCellConstant.cs
- CellPartitioner.cs
- FrameSecurityDescriptor.cs
- UnauthorizedWebPart.cs
- SupportingTokenAuthenticatorSpecification.cs
- SendKeys.cs
- Win32MouseDevice.cs
- EntityContainer.cs
- QualifiedCellIdBoolean.cs
- dataSvcMapFileLoader.cs
- WindowsGraphicsWrapper.cs