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
- UpdateCompiler.cs
- AddingNewEventArgs.cs
- CodeCatchClauseCollection.cs
- XmlSchemaSequence.cs
- ArrayList.cs
- HebrewNumber.cs
- ErrorInfoXmlDocument.cs
- EmissiveMaterial.cs
- XhtmlConformanceSection.cs
- MarginCollapsingState.cs
- AnchoredBlock.cs
- VerificationException.cs
- IgnorePropertiesAttribute.cs
- ObjectSecurity.cs
- ListViewVirtualItemsSelectionRangeChangedEvent.cs
- CodePageUtils.cs
- ReachSerializationCacheItems.cs
- Configuration.cs
- SafeSecurityHandles.cs
- MimeMapping.cs
- LineServicesRun.cs
- CompleteWizardStep.cs
- Crc32.cs
- RPIdentityRequirement.cs
- StartFileNameEditor.cs
- configsystem.cs
- ProfilePropertyNameValidator.cs
- ApplicationActivator.cs
- QilParameter.cs
- DispatcherFrame.cs
- SponsorHelper.cs
- GridViewDeletedEventArgs.cs
- DictionaryContent.cs
- ReachDocumentReferenceSerializerAsync.cs
- RectConverter.cs
- BindingBase.cs
- FormattedTextSymbols.cs
- DataGridViewAdvancedBorderStyle.cs
- PieceNameHelper.cs
- PolicyVersion.cs
- UIntPtr.cs
- _RequestCacheProtocol.cs
- HandlerMappingMemo.cs
- LabelDesigner.cs
- TabletCollection.cs
- HealthMonitoringSection.cs
- QuaternionRotation3D.cs
- ExpressionLink.cs
- SoapFault.cs
- DbProviderServices.cs
- AQNBuilder.cs
- CodeMemberField.cs
- WindowsRichEditRange.cs
- EpmCustomContentSerializer.cs
- DBCommandBuilder.cs
- Identity.cs
- _SslSessionsCache.cs
- Attributes.cs
- XmlQueryType.cs
- XmlCustomFormatter.cs
- DebugView.cs
- HwndAppCommandInputProvider.cs
- ResourcesChangeInfo.cs
- _ProxyRegBlob.cs
- ContractSearchPattern.cs
- ArraySortHelper.cs
- XmlMembersMapping.cs
- WebFormDesignerActionService.cs
- StrokeNodeEnumerator.cs
- PingReply.cs
- SecurityManager.cs
- Utils.cs
- SqlNodeAnnotation.cs
- TableCellCollection.cs
- XmlDataFileEditor.cs
- TextBoxBaseDesigner.cs
- DataGridViewRowsAddedEventArgs.cs
- RTTypeWrapper.cs
- GridViewEditEventArgs.cs
- StickyNote.cs
- DesignerEventService.cs
- SessionState.cs
- ListViewContainer.cs
- SqlClientPermission.cs
- OracleException.cs
- Nullable.cs
- ControlCodeDomSerializer.cs
- AffineTransform3D.cs
- ListItemParagraph.cs
- OdbcCommandBuilder.cs
- ControlEvent.cs
- BindableTemplateBuilder.cs
- QEncodedStream.cs
- DataGridViewCellCancelEventArgs.cs
- DesignerSerializationVisibilityAttribute.cs
- NullableBoolConverter.cs
- Mappings.cs
- PackUriHelper.cs
- ProtocolReflector.cs
- PerformanceCounterPermission.cs