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
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- HttpDigestClientCredential.cs
- SecurityAlgorithmSuite.cs
- OletxTransactionManager.cs
- BindingCompleteEventArgs.cs
- SimpleApplicationHost.cs
- SelectionWordBreaker.cs
- PerformanceCounterPermission.cs
- FontNameConverter.cs
- CodeSnippetTypeMember.cs
- SortQuery.cs
- _RegBlobWebProxyDataBuilder.cs
- ParameterModifier.cs
- MSAANativeProvider.cs
- TextBoxBase.cs
- ObjectNavigationPropertyMapping.cs
- ToolStripDesignerAvailabilityAttribute.cs
- RolePrincipal.cs
- DataColumn.cs
- RepeaterDesigner.cs
- DataSourceCache.cs
- Stream.cs
- InstanceCollisionException.cs
- XamlWriter.cs
- DuplicateWaitObjectException.cs
- DataSourceSelectArguments.cs
- SqlUtils.cs
- StringValueConverter.cs
- GridViewPageEventArgs.cs
- FontResourceCache.cs
- RandomNumberGenerator.cs
- SchemaComplexType.cs
- CompilerParameters.cs
- SymLanguageType.cs
- QueryStack.cs
- ProviderCommandInfoUtils.cs
- MatrixTransform3D.cs
- DSGeneratorProblem.cs
- ListViewDeletedEventArgs.cs
- AddressAccessDeniedException.cs
- TransactionManager.cs
- DataGridViewHeaderCell.cs
- NativeMethods.cs
- GeneratedView.cs
- WindowsGrip.cs
- HostingPreferredMapPath.cs
- LoginName.cs
- NameValueSectionHandler.cs
- EndOfStreamException.cs
- Help.cs
- ListDictionary.cs
- Paragraph.cs
- CommandBinding.cs
- ControlIdConverter.cs
- BitmapDownload.cs
- Geometry3D.cs
- HttpApplicationFactory.cs
- SynchronizedInputHelper.cs
- SqlServices.cs
- EventEntry.cs
- XmlUrlResolver.cs
- Encoder.cs
- SafeCryptContextHandle.cs
- ObjectSerializerFactory.cs
- Normalizer.cs
- MouseActionValueSerializer.cs
- HttpModulesSection.cs
- BreakRecordTable.cs
- RenderData.cs
- ProfileEventArgs.cs
- SynchronousSendBindingElement.cs
- PieceNameHelper.cs
- FileDialogCustomPlace.cs
- Blend.cs
- TemplateManager.cs
- MessageContractExporter.cs
- EventLogEntry.cs
- SQLDoubleStorage.cs
- loginstatus.cs
- DbParameterHelper.cs
- MenuItemStyle.cs
- ScaleTransform.cs
- HandlerMappingMemo.cs
- MachineKeySection.cs
- SvcMapFile.cs
- Transform.cs
- Table.cs
- ColumnMapTranslator.cs
- AccessorTable.cs
- ComboBoxAutomationPeer.cs
- RegularExpressionValidator.cs
- XPathAxisIterator.cs
- Int32CAMarshaler.cs
- ParserHooks.cs
- ObjectView.cs
- OutputCacheModule.cs
- NativeMethods.cs
- PrivateFontCollection.cs
- DrawingContextWalker.cs
- DBSchemaTable.cs
- ThreadExceptionEvent.cs