Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- ViewStateModeByIdAttribute.cs
- ColumnBinding.cs
- CodeMethodReturnStatement.cs
- IsolatedStorageException.cs
- GenericParameterDataContract.cs
- GraphicsState.cs
- SplineQuaternionKeyFrame.cs
- ConfigurationValue.cs
- ZipIOModeEnforcingStream.cs
- CommonDialog.cs
- NumberFormatInfo.cs
- HtmlTable.cs
- WorkflowTransactionOptions.cs
- Renderer.cs
- MILUtilities.cs
- DataServiceQueryProvider.cs
- WebEvents.cs
- LowerCaseStringConverter.cs
- ViewBox.cs
- ImageBrush.cs
- DynamicUpdateCommand.cs
- hwndwrapper.cs
- CryptoKeySecurity.cs
- Int32CollectionConverter.cs
- WSSecurityXXX2005.cs
- ScrollProviderWrapper.cs
- SByteConverter.cs
- StreamingContext.cs
- UnmanagedMarshal.cs
- ComplexTypeEmitter.cs
- Win32KeyboardDevice.cs
- HtmlTernaryTree.cs
- DataGrid.cs
- GestureRecognizer.cs
- EntityDataSourceView.cs
- BufferBuilder.cs
- ValidationRule.cs
- DateTimeOffsetAdapter.cs
- SqlCacheDependency.cs
- XmlHelper.cs
- OuterGlowBitmapEffect.cs
- SecurityTraceRecordHelper.cs
- SvcMapFileLoader.cs
- ChangeInterceptorAttribute.cs
- PtsCache.cs
- BinHexDecoder.cs
- MessageHeader.cs
- UnhandledExceptionEventArgs.cs
- Metadata.cs
- FlagsAttribute.cs
- SiteMapNodeItemEventArgs.cs
- ToolStripGrip.cs
- ListSortDescriptionCollection.cs
- MemberHolder.cs
- FormatConvertedBitmap.cs
- SortQueryOperator.cs
- Token.cs
- StyleXamlTreeBuilder.cs
- embossbitmapeffect.cs
- CodeAttributeDeclaration.cs
- FormViewPagerRow.cs
- BooleanKeyFrameCollection.cs
- VersionPair.cs
- DocumentPageHost.cs
- SqlInfoMessageEvent.cs
- GlyphCollection.cs
- WS2007HttpBinding.cs
- SystemIcons.cs
- FtpCachePolicyElement.cs
- ServicePointManagerElement.cs
- RandomNumberGenerator.cs
- AbsoluteQuery.cs
- NativeMethods.cs
- FilteredReadOnlyMetadataCollection.cs
- TagPrefixAttribute.cs
- Compiler.cs
- TimeSpanOrInfiniteConverter.cs
- StreamGeometry.cs
- StaticFileHandler.cs
- IgnoreDataMemberAttribute.cs
- UpdateException.cs
- Vars.cs
- SpellerStatusTable.cs
- CloudCollection.cs
- LineGeometry.cs
- MenuItem.cs
- ProcessProtocolHandler.cs
- BrowserCapabilitiesCompiler.cs
- ClonableStack.cs
- WebPartConnectVerb.cs
- BulletedListEventArgs.cs
- SignedPkcs7.cs
- HitTestResult.cs
- ReadWriteSpinLock.cs
- SystemUdpStatistics.cs
- TabControlCancelEvent.cs
- TextBoxAutoCompleteSourceConverter.cs
- TraceContext.cs
- Storyboard.cs
- Attributes.cs