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
- WebPartZone.cs
- DataGridViewRowDividerDoubleClickEventArgs.cs
- DataGridCaption.cs
- SimpleTableProvider.cs
- Viewport3DVisual.cs
- MethodBuilderInstantiation.cs
- Bitmap.cs
- RenderContext.cs
- TextDecoration.cs
- MeshGeometry3D.cs
- ToolboxItemSnapLineBehavior.cs
- TraceProvider.cs
- X509Utils.cs
- BulletedListEventArgs.cs
- SqlTypesSchemaImporter.cs
- GraphicsContainer.cs
- PolyQuadraticBezierSegment.cs
- DocumentApplication.cs
- DataConnectionHelper.cs
- ContainsSearchOperator.cs
- SqlBulkCopyColumnMappingCollection.cs
- CellIdBoolean.cs
- DocumentXPathNavigator.cs
- StringConcat.cs
- SequenceQuery.cs
- FindProgressChangedEventArgs.cs
- infer.cs
- ProviderSettingsCollection.cs
- EditorBrowsableAttribute.cs
- RecordManager.cs
- HashSetEqualityComparer.cs
- DataGridHeaderBorder.cs
- IdlingCommunicationPool.cs
- ResumeStoryboard.cs
- OleStrCAMarshaler.cs
- RowToParametersTransformer.cs
- PowerModeChangedEventArgs.cs
- DataGridViewRow.cs
- HttpRequestMessageProperty.cs
- Size.cs
- EpmSyndicationContentSerializer.cs
- AsymmetricKeyExchangeDeformatter.cs
- TextServicesManager.cs
- ConfigurationPropertyAttribute.cs
- DataFormats.cs
- WindowsListViewGroup.cs
- Duration.cs
- PlanCompiler.cs
- CommandManager.cs
- PipelineModuleStepContainer.cs
- Config.cs
- ConfigXmlDocument.cs
- AnimationLayer.cs
- CompiledIdentityConstraint.cs
- Mutex.cs
- DetailsView.cs
- SoapException.cs
- ContentElementAutomationPeer.cs
- InternalBase.cs
- PrinterUnitConvert.cs
- Enumerable.cs
- UIElementParagraph.cs
- MouseDevice.cs
- EventHandlersStore.cs
- DiagnosticTrace.cs
- AttributeData.cs
- ScrollViewerAutomationPeer.cs
- FlagsAttribute.cs
- ImplicitInputBrush.cs
- ClosableStream.cs
- DataControlFieldHeaderCell.cs
- TaiwanLunisolarCalendar.cs
- StylusButtonEventArgs.cs
- ActivityTypeDesigner.xaml.cs
- XmlMapping.cs
- Panel.cs
- FullTextBreakpoint.cs
- EmissiveMaterial.cs
- FocusWithinProperty.cs
- ConfigurationSchemaErrors.cs
- TraceContextEventArgs.cs
- AssociationType.cs
- TimeSpanFormat.cs
- ProcessRequestArgs.cs
- ParameterCollectionEditorForm.cs
- _SslState.cs
- AsyncStreamReader.cs
- ErrorItem.cs
- ListBoxDesigner.cs
- Suspend.cs
- TextElement.cs
- ByteViewer.cs
- StorageConditionPropertyMapping.cs
- XmlSchemaAnnotation.cs
- CodeDirectoryCompiler.cs
- IdentitySection.cs
- DataServices.cs
- DataGridPageChangedEventArgs.cs
- ClonableStack.cs
- PersonalizationState.cs