Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- DropSourceBehavior.cs
- WebUtil.cs
- FtpCachePolicyElement.cs
- MimeMapping.cs
- ReferencedType.cs
- ByteAnimation.cs
- ObjectConverter.cs
- SkipQueryOptionExpression.cs
- AsynchronousChannelMergeEnumerator.cs
- FontStretchConverter.cs
- ConfigUtil.cs
- ProtectedConfigurationSection.cs
- XmlEntity.cs
- EmulateRecognizeCompletedEventArgs.cs
- SecurityContext.cs
- Stack.cs
- ControlCollection.cs
- SchemaNames.cs
- ToolStripTextBox.cs
- SmiRequestExecutor.cs
- XmlMemberMapping.cs
- LOSFormatter.cs
- ButtonChrome.cs
- ValidationError.cs
- JsonXmlDataContract.cs
- Debug.cs
- BoundColumn.cs
- SchemaElementDecl.cs
- RsaKeyIdentifierClause.cs
- ProfileInfo.cs
- DataFormat.cs
- ResourcePart.cs
- DataControlPagerLinkButton.cs
- ExceptionTrace.cs
- XmlChildEnumerator.cs
- TableCellCollection.cs
- ExpressionBuilder.cs
- BamlLocalizer.cs
- WeakReferenceList.cs
- HostedImpersonationContext.cs
- TraceLevelHelper.cs
- InputGestureCollection.cs
- TypeConverter.cs
- ToolStripCollectionEditor.cs
- VirtualPathUtility.cs
- SelectionRange.cs
- PaintEvent.cs
- SystemBrushes.cs
- DataGridViewCellConverter.cs
- BinaryUtilClasses.cs
- EdmItemError.cs
- EasingKeyFrames.cs
- PrintDialogException.cs
- CodePropertyReferenceExpression.cs
- SecurityKeyIdentifierClause.cs
- CodeExporter.cs
- WebBodyFormatMessageProperty.cs
- ProjectionPlanCompiler.cs
- StringComparer.cs
- documentsequencetextview.cs
- GridViewDeleteEventArgs.cs
- QilPatternVisitor.cs
- CompiledQuery.cs
- RemotingHelper.cs
- AccessDataSourceView.cs
- PrefixQName.cs
- ListSourceHelper.cs
- ContextProperty.cs
- PolicyException.cs
- GradientBrush.cs
- DynamicILGenerator.cs
- ValueSerializer.cs
- PlanCompiler.cs
- SoapHeaderAttribute.cs
- XmlC14NWriter.cs
- FilteredDataSetHelper.cs
- InlineObject.cs
- ZipIOExtraField.cs
- WebBrowser.cs
- PrintDocument.cs
- UpdateManifestForBrowserApplication.cs
- PeerApplicationLaunchInfo.cs
- SQLBinary.cs
- BaseCodePageEncoding.cs
- TypeListConverter.cs
- LiteralControl.cs
- BaseValidator.cs
- DataGridViewCellParsingEventArgs.cs
- ModelFactory.cs
- PermissionSet.cs
- GenerateHelper.cs
- BitVec.cs
- DPCustomTypeDescriptor.cs
- RequestFactory.cs
- PathFigureCollectionValueSerializer.cs
- COM2ExtendedUITypeEditor.cs
- TraceListener.cs
- FactoryGenerator.cs
- DataGridViewRow.cs
- SetterBase.cs