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
- TextCollapsingProperties.cs
- Keywords.cs
- DbParameterCollection.cs
- MissingMethodException.cs
- KeyValueSerializer.cs
- TypeLibConverter.cs
- LazyTextWriterCreator.cs
- DeflateStream.cs
- DataGridViewAutoSizeModeEventArgs.cs
- StorageMappingItemLoader.cs
- ResourceExpression.cs
- ImageList.cs
- LogoValidationException.cs
- ListenerHandler.cs
- SqlServices.cs
- DataGridHeadersVisibilityToVisibilityConverter.cs
- Debug.cs
- WinEventWrap.cs
- BaseAsyncResult.cs
- XPathDocumentNavigator.cs
- SoundPlayer.cs
- DoubleLink.cs
- ToolStripRenderEventArgs.cs
- CommonRemoteMemoryBlock.cs
- DifferencingCollection.cs
- ADRoleFactoryConfiguration.cs
- HWStack.cs
- InputScopeNameConverter.cs
- HandleCollector.cs
- ListBindingConverter.cs
- ScrollItemProviderWrapper.cs
- HexParser.cs
- SafeCryptContextHandle.cs
- XmlSchemaChoice.cs
- NativeMethodsCLR.cs
- EntityTypeBase.cs
- PolyLineSegment.cs
- DecoderReplacementFallback.cs
- TableRow.cs
- CompiledIdentityConstraint.cs
- InputLangChangeRequestEvent.cs
- PauseStoryboard.cs
- DesignerActionUIService.cs
- XmlPreloadedResolver.cs
- MediaPlayerState.cs
- FlowDocumentPaginator.cs
- MimeFormImporter.cs
- ModelService.cs
- UnsafeNativeMethodsPenimc.cs
- TextFormatterContext.cs
- RadioButton.cs
- PersonalizationStateQuery.cs
- ListViewItemSelectionChangedEvent.cs
- TableParaClient.cs
- IndentedWriter.cs
- XamlParser.cs
- DocumentXmlWriter.cs
- DataGridCell.cs
- WindowPatternIdentifiers.cs
- ProcessModule.cs
- BCryptNative.cs
- iisPickupDirectory.cs
- WebPartConnectionsCloseVerb.cs
- FocusTracker.cs
- CqlQuery.cs
- HttpApplicationFactory.cs
- CodeSubDirectory.cs
- CryptoKeySecurity.cs
- LocalizationParserHooks.cs
- ExceptionHandlerDesigner.cs
- DataColumnMappingCollection.cs
- coordinatorscratchpad.cs
- WebEvents.cs
- C14NUtil.cs
- SyntaxCheck.cs
- Span.cs
- CultureTableRecord.cs
- ValidationSummary.cs
- DataRowChangeEvent.cs
- XmlSchemaSimpleTypeList.cs
- StyleCollection.cs
- HashMembershipCondition.cs
- FontUnit.cs
- DesignerRegionMouseEventArgs.cs
- CompilerTypeWithParams.cs
- SqlAggregateChecker.cs
- AnimationClockResource.cs
- CorrelationQuery.cs
- XPathBinder.cs
- CheckBoxBaseAdapter.cs
- MenuCommandService.cs
- SHA1.cs
- ComplexTypeEmitter.cs
- PropertyValueChangedEvent.cs
- WorkflowPageSetupDialog.cs
- SliderAutomationPeer.cs
- XmlAnyElementAttribute.cs
- Debug.cs
- DbDeleteCommandTree.cs
- TextDecoration.cs