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
- ComponentConverter.cs
- ObjectDataSource.cs
- ToolStripItem.cs
- DbgUtil.cs
- PropertyBuilder.cs
- TypeReference.cs
- HttpClientCertificate.cs
- ClientApiGenerator.cs
- ApplicationContext.cs
- HwndHost.cs
- EventSinkHelperWriter.cs
- TaskFormBase.cs
- ScriptingSectionGroup.cs
- WindowsStartMenu.cs
- DirectoryObjectSecurity.cs
- AsyncSerializedWorker.cs
- ImageDrawing.cs
- FolderLevelBuildProviderAppliesToAttribute.cs
- WmlPhoneCallAdapter.cs
- ListViewPagedDataSource.cs
- CodeCatchClause.cs
- RtfToXamlLexer.cs
- TemplateControlParser.cs
- UpdateDelegates.Generated.cs
- TextChangedEventArgs.cs
- TouchesCapturedWithinProperty.cs
- SystemColors.cs
- ConfigurationValidatorBase.cs
- ScrollChrome.cs
- DataGridViewCellPaintingEventArgs.cs
- ViewCellRelation.cs
- SubclassTypeValidator.cs
- LeaseManager.cs
- MetabaseServerConfig.cs
- ViewPort3D.cs
- SerializationInfo.cs
- NativeObjectSecurity.cs
- PointCollectionConverter.cs
- TiffBitmapDecoder.cs
- XmlSchemaElement.cs
- infer.cs
- XmlQueryOutput.cs
- ExpandCollapsePattern.cs
- _ContextAwareResult.cs
- InfocardClientCredentials.cs
- StylusDownEventArgs.cs
- NonVisualControlAttribute.cs
- XmlSchemaObjectTable.cs
- DbConnectionPool.cs
- DataGridViewColumnHeaderCell.cs
- CheckBoxPopupAdapter.cs
- SubpageParagraph.cs
- WrappedIUnknown.cs
- Camera.cs
- MatrixTransform3D.cs
- MaterialGroup.cs
- ItemsControlAutomationPeer.cs
- DataObjectSettingDataEventArgs.cs
- DataSourceXmlSubItemAttribute.cs
- ConstNode.cs
- FindCriteriaElement.cs
- StreamAsIStream.cs
- CountAggregationOperator.cs
- StickyNote.cs
- SelectionProviderWrapper.cs
- HtmlLabelAdapter.cs
- Composition.cs
- RegexWorker.cs
- TdsRecordBufferSetter.cs
- PersonalizableTypeEntry.cs
- CurrencyWrapper.cs
- WebHttpSecurityElement.cs
- Matrix3DConverter.cs
- SelectionRangeConverter.cs
- LoginUtil.cs
- PartDesigner.cs
- SymLanguageType.cs
- RadioButtonAutomationPeer.cs
- SortedSetDebugView.cs
- DiscreteKeyFrames.cs
- LocalClientSecuritySettingsElement.cs
- NullableDecimalAverageAggregationOperator.cs
- SimpleHandlerFactory.cs
- FileSystemInfo.cs
- FeedUtils.cs
- SoapSchemaImporter.cs
- PartialCachingControl.cs
- RIPEMD160.cs
- DoubleStorage.cs
- EntityDesignerBuildProvider.cs
- SoapInteropTypes.cs
- EntityFrameworkVersions.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- StandardToolWindows.cs
- IItemContainerGenerator.cs
- InputProcessorProfilesLoader.cs
- StylusLogic.cs
- WindowsComboBox.cs
- XmlSchemaInfo.cs
- AlphabeticalEnumConverter.cs