Code:
/ 4.0 / 4.0 / 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. //---------------------------------------------------------------------------- // //// 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
- MediaEntryAttribute.cs
- DocumentGridContextMenu.cs
- ComplexPropertyEntry.cs
- precedingquery.cs
- ViewKeyConstraint.cs
- RtType.cs
- CodeRemoveEventStatement.cs
- FloaterParaClient.cs
- HostSecurityManager.cs
- DefaultTextStoreTextComposition.cs
- DataTableReaderListener.cs
- TableLayoutRowStyleCollection.cs
- AdornerDecorator.cs
- FileUpload.cs
- TemplatedMailWebEventProvider.cs
- BrushValueSerializer.cs
- CompositeFontParser.cs
- FormatConvertedBitmap.cs
- XmlWhitespace.cs
- ConfigurationFileMap.cs
- FormParameter.cs
- DataPagerFieldItem.cs
- DataError.cs
- CompoundFileDeflateTransform.cs
- ImageList.cs
- XPathPatternBuilder.cs
- CopyAttributesAction.cs
- ParserContext.cs
- XmlAnyAttributeAttribute.cs
- DocumentXPathNavigator.cs
- FactoryId.cs
- NameSpaceExtractor.cs
- EncoderNLS.cs
- coordinatorfactory.cs
- GeneralTransform3DGroup.cs
- SecurityRuntime.cs
- ExtensionSimplifierMarkupObject.cs
- XmlSerializerFactory.cs
- BaseValidatorDesigner.cs
- BufferedGraphicsContext.cs
- EntityProviderFactory.cs
- NetDataContractSerializer.cs
- httpstaticobjectscollection.cs
- TextEditorSpelling.cs
- followingsibling.cs
- DataServiceProcessingPipelineEventArgs.cs
- TimeEnumHelper.cs
- wmiprovider.cs
- RowUpdatingEventArgs.cs
- AnnotationHighlightLayer.cs
- BindingList.cs
- WebPartTransformerAttribute.cs
- DependencyObject.cs
- PermissionSetEnumerator.cs
- DataGridViewRowsAddedEventArgs.cs
- FormViewCommandEventArgs.cs
- FontCollection.cs
- Separator.cs
- ConfigurationElementProperty.cs
- CompositeFontParser.cs
- StyleSelector.cs
- MsmqAppDomainProtocolHandler.cs
- DynamicScriptObject.cs
- Input.cs
- FileUpload.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- TrustLevelCollection.cs
- ToolConsole.cs
- ParameterCollection.cs
- TextTreeInsertElementUndoUnit.cs
- TextBox.cs
- CookieProtection.cs
- CryptoConfig.cs
- ToolZone.cs
- UrlAuthFailedErrorFormatter.cs
- PointValueSerializer.cs
- PassportIdentity.cs
- CompressionTransform.cs
- WebBrowserContainer.cs
- Table.cs
- QueryExecutionOption.cs
- LayoutInformation.cs
- XmlElementAttributes.cs
- FolderLevelBuildProviderCollection.cs
- Rect3D.cs
- updateconfighost.cs
- SqlClientMetaDataCollectionNames.cs
- EntityViewContainer.cs
- DropShadowEffect.cs
- HttpListener.cs
- TextDecorations.cs
- NavigationFailedEventArgs.cs
- TableChangeProcessor.cs
- UpdateTracker.cs
- TextLineBreak.cs
- __ConsoleStream.cs
- FormatterConverter.cs
- AssemblyContextControlItem.cs
- CharKeyFrameCollection.cs
- OLEDB_Util.cs