Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ControlTemplate.cs
- DoubleLinkList.cs
- DataBinding.cs
- TemplateControlParser.cs
- TableCellCollection.cs
- DataKeyArray.cs
- PersonalizationProviderCollection.cs
- SynchronizationLockException.cs
- HttpChannelBindingToken.cs
- CompilationLock.cs
- BitmapEffect.cs
- TransformedBitmap.cs
- NavigationProperty.cs
- DbConnectionPoolOptions.cs
- baseshape.cs
- TransformedBitmap.cs
- ScopedKnownTypes.cs
- TextSelectionHighlightLayer.cs
- GACIdentityPermission.cs
- RequestQueue.cs
- Blend.cs
- Visual3D.cs
- ContractMapping.cs
- TraceListener.cs
- TransportConfigurationTypeElementCollection.cs
- __FastResourceComparer.cs
- ExceptionNotification.cs
- StrokeCollection.cs
- ToolBarButtonClickEvent.cs
- DbModificationCommandTree.cs
- DCSafeHandle.cs
- ExpressionBuilder.cs
- ScriptControlManager.cs
- GeneralTransform.cs
- PassportAuthenticationModule.cs
- Group.cs
- Accessible.cs
- ToolStripRenderer.cs
- XamlTypeMapper.cs
- HtmlEmptyTagControlBuilder.cs
- WebContext.cs
- DataGridViewRowCollection.cs
- initElementDictionary.cs
- MonthCalendar.cs
- CalendarAutomationPeer.cs
- DataBinder.cs
- CertificateElement.cs
- WhitespaceRuleReader.cs
- _Win32.cs
- ListSortDescriptionCollection.cs
- MailDefinition.cs
- WizardDesigner.cs
- BindingSource.cs
- SqlCacheDependencyDatabase.cs
- XmlSchemaSimpleContentRestriction.cs
- Typography.cs
- CodeDomConfigurationHandler.cs
- InfiniteIntConverter.cs
- XmlSchemaSequence.cs
- ListenerElementsCollection.cs
- Soap.cs
- KeyValueInternalCollection.cs
- DeflateStream.cs
- ObjectStateFormatter.cs
- SoapClientProtocol.cs
- DPTypeDescriptorContext.cs
- TableRowCollection.cs
- IntSecurity.cs
- SystemKeyConverter.cs
- SQlBooleanStorage.cs
- _Win32.cs
- ImageCodecInfoPrivate.cs
- Zone.cs
- XmlSchemaGroup.cs
- GiveFeedbackEventArgs.cs
- HtmlShim.cs
- Regex.cs
- SqlDataRecord.cs
- FieldNameLookup.cs
- DummyDataSource.cs
- DragDeltaEventArgs.cs
- ValidatorCollection.cs
- XmlUrlEditor.cs
- PrivilegedConfigurationManager.cs
- WorkflowQueueInfo.cs
- UIElement3DAutomationPeer.cs
- WsdlInspector.cs
- TemplateBamlRecordReader.cs
- CodeSubDirectory.cs
- SourceLineInfo.cs
- ProfileModule.cs
- ContextQuery.cs
- GlyphTypeface.cs
- DelegatedStream.cs
- BufferedStream.cs
- XmlSchemaSimpleContentRestriction.cs
- AncestorChangedEventArgs.cs
- QilPatternFactory.cs
- SoapReflectionImporter.cs
- RuntimeConfig.cs