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
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SqlParameterizer.cs
- StyleSheetComponentEditor.cs
- DispatcherSynchronizationContext.cs
- Condition.cs
- MimeTypeAttribute.cs
- StringUtil.cs
- CalendarTable.cs
- TemplateBaseAction.cs
- XamlWriter.cs
- MultiTrigger.cs
- CollectionView.cs
- EntityProxyFactory.cs
- ToolBarButtonClickEvent.cs
- CodeDomDecompiler.cs
- NavigationWindow.cs
- SingleConverter.cs
- SiteMapPath.cs
- TimelineCollection.cs
- EntityDataSourceEntitySetNameItem.cs
- baseshape.cs
- CryptoConfig.cs
- AspNetSynchronizationContext.cs
- DesignerTextBoxAdapter.cs
- HwndMouseInputProvider.cs
- SchemaNotation.cs
- IsolatedStorageFileStream.cs
- KnownTypesHelper.cs
- WorkItem.cs
- WebPartDisplayMode.cs
- QueryableDataSourceHelper.cs
- TaiwanLunisolarCalendar.cs
- DisplayToken.cs
- DictionaryGlobals.cs
- WindowsListViewSubItem.cs
- XslUrlEditor.cs
- HyperLinkDesigner.cs
- ConnectionInterfaceCollection.cs
- Column.cs
- ActiveXHelper.cs
- MsmqChannelFactory.cs
- UnaryNode.cs
- MonikerBuilder.cs
- AlternateView.cs
- TopClause.cs
- PartialTrustHelpers.cs
- SchemaLookupTable.cs
- IIS7WorkerRequest.cs
- DataSourceNameHandler.cs
- TdsParserSessionPool.cs
- BinaryFormatter.cs
- CellPartitioner.cs
- SimpleBitVector32.cs
- TabItemAutomationPeer.cs
- XmlExceptionHelper.cs
- ImageIndexConverter.cs
- ProcessThreadCollection.cs
- StickyNoteContentControl.cs
- CompositeControl.cs
- ConfigXmlWhitespace.cs
- StreamResourceInfo.cs
- ListItemParagraph.cs
- DataGridViewCellStateChangedEventArgs.cs
- ButtonColumn.cs
- ColorTransformHelper.cs
- ClientProxyGenerator.cs
- BreakRecordTable.cs
- SqlConnectionPoolGroupProviderInfo.cs
- UIElement.cs
- BaseCodeDomTreeGenerator.cs
- DataTableNameHandler.cs
- Membership.cs
- WebControlAdapter.cs
- HtmlHead.cs
- coordinatorfactory.cs
- Rule.cs
- RtfToken.cs
- AddInProcess.cs
- CapabilitiesPattern.cs
- RefreshEventArgs.cs
- TimelineCollection.cs
- hresults.cs
- MimeTypePropertyAttribute.cs
- EraserBehavior.cs
- ReferencedType.cs
- CryptoConfig.cs
- ResourceAssociationTypeEnd.cs
- PersistChildrenAttribute.cs
- WebPartZone.cs
- MissingMemberException.cs
- PathSegment.cs
- SqlTrackingQuery.cs
- DefaultMemberAttribute.cs
- SqlVersion.cs
- _NegoState.cs
- ObjectViewListener.cs
- ImpersonateTokenRef.cs
- HttpCookie.cs
- WebBrowserNavigatedEventHandler.cs
- TheQuery.cs
- ForEachAction.cs