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
- EdmItemCollection.cs
- InfoCardXmlSerializer.cs
- InputScopeAttribute.cs
- LayoutTable.cs
- RealizationDrawingContextWalker.cs
- CSharpCodeProvider.cs
- Contracts.cs
- BuildProvidersCompiler.cs
- StaticSiteMapProvider.cs
- NavigationEventArgs.cs
- ComponentCodeDomSerializer.cs
- sqlser.cs
- ParameterCollection.cs
- PerspectiveCamera.cs
- TypeSystemProvider.cs
- XmlAggregates.cs
- ElapsedEventArgs.cs
- DefaultShape.cs
- Win32Exception.cs
- RouteTable.cs
- mediaclock.cs
- ZipFileInfo.cs
- CubicEase.cs
- SqlClientPermission.cs
- UnknownBitmapDecoder.cs
- PropertyChangingEventArgs.cs
- Style.cs
- IResourceProvider.cs
- StyleBamlTreeBuilder.cs
- ReadContentAsBinaryHelper.cs
- RegistrationProxy.cs
- TypeTypeConverter.cs
- InvalidOperationException.cs
- Duration.cs
- SparseMemoryStream.cs
- TreeView.cs
- UserControlBuildProvider.cs
- Decimal.cs
- Literal.cs
- ListControlConvertEventArgs.cs
- TextViewBase.cs
- MimeWriter.cs
- WebServiceHandlerFactory.cs
- EventsTab.cs
- TaskCanceledException.cs
- baseaxisquery.cs
- ReadOnlyCollectionBuilder.cs
- DetailsViewUpdatedEventArgs.cs
- OlePropertyStructs.cs
- APCustomTypeDescriptor.cs
- XmlSerializerAssemblyAttribute.cs
- SQLInt16.cs
- ZipIOCentralDirectoryFileHeader.cs
- DodSequenceMerge.cs
- WorkflowApplicationAbortedEventArgs.cs
- Vector3DAnimationBase.cs
- CommandManager.cs
- ListChangedEventArgs.cs
- InheritanceRules.cs
- SqlStatistics.cs
- SID.cs
- Registry.cs
- FontFaceLayoutInfo.cs
- GenericTextProperties.cs
- ZipArchive.cs
- SelectedGridItemChangedEvent.cs
- DeobfuscatingStream.cs
- DesignOnlyAttribute.cs
- CustomBindingElement.cs
- TypedReference.cs
- AndCondition.cs
- XDeferredAxisSource.cs
- FillRuleValidation.cs
- RuleEngine.cs
- SqlDataSourceConfigureSortForm.cs
- UpdatePanel.cs
- XmlStringTable.cs
- DebugView.cs
- WebPartZoneBase.cs
- NameGenerator.cs
- ResourceSet.cs
- UriTemplateVariableQueryValue.cs
- ReferenceSchema.cs
- Soap.cs
- AnchoredBlock.cs
- ReflectPropertyDescriptor.cs
- DefaultClaimSet.cs
- MemberDescriptor.cs
- StringValidatorAttribute.cs
- Context.cs
- WindowsScrollBarBits.cs
- WebPartConnectionCollection.cs
- Rect.cs
- XmlText.cs
- GeometryModel3D.cs
- HtmlInputHidden.cs
- AuthenticationService.cs
- AsnEncodedData.cs
- NullableConverter.cs
- CacheSection.cs