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
- DataBindingExpressionBuilder.cs
- Unit.cs
- TemplateNameScope.cs
- HandledMouseEvent.cs
- GPPOINTF.cs
- InkCanvasSelection.cs
- CroppedBitmap.cs
- PassportAuthenticationModule.cs
- AvtEvent.cs
- Vars.cs
- BamlResourceSerializer.cs
- DecoderExceptionFallback.cs
- DesignerAttribute.cs
- WebPartMovingEventArgs.cs
- CollectionViewGroupInternal.cs
- DrawTreeNodeEventArgs.cs
- DoubleKeyFrameCollection.cs
- TCPListener.cs
- ControlIdConverter.cs
- OleDbFactory.cs
- GridViewSortEventArgs.cs
- StringToken.cs
- RequestCachingSection.cs
- ResumeStoryboard.cs
- SqlDataSourceCommandParser.cs
- DependencyObject.cs
- EntityCommandCompilationException.cs
- StyleSheetComponentEditor.cs
- ToolStrip.cs
- HandlerFactoryCache.cs
- DataServiceQueryContinuation.cs
- XmlMessageFormatter.cs
- VisualTarget.cs
- ProcessingInstructionAction.cs
- LineVisual.cs
- ColumnMap.cs
- CodePageEncoding.cs
- Utilities.cs
- SafeReversePInvokeHandle.cs
- SqlProviderManifest.cs
- ObjectItemCollectionAssemblyCacheEntry.cs
- XsdDataContractImporter.cs
- IgnoreSectionHandler.cs
- DispatcherExceptionFilterEventArgs.cs
- CaseStatementProjectedSlot.cs
- TableItemPattern.cs
- FixedSOMTableRow.cs
- ThemeDirectoryCompiler.cs
- PolicyException.cs
- RankException.cs
- RegexStringValidatorAttribute.cs
- BindingListCollectionView.cs
- QueryParameter.cs
- WsatServiceCertificate.cs
- CqlBlock.cs
- TextElementEnumerator.cs
- ExternalDataExchangeService.cs
- QueryStringConverter.cs
- EventMappingSettingsCollection.cs
- ClassHandlersStore.cs
- BasicCommandTreeVisitor.cs
- ImageCodecInfo.cs
- Guid.cs
- LineBreak.cs
- ControlHelper.cs
- EntityDataSourceColumn.cs
- CommandArguments.cs
- TrackingMemoryStreamFactory.cs
- EntityDataSourceMemberPath.cs
- AttributeCollection.cs
- StaticResourceExtension.cs
- ConnectionStringsExpressionBuilder.cs
- CatalogPartDesigner.cs
- XslCompiledTransform.cs
- OleDbMetaDataFactory.cs
- TreeSet.cs
- NetworkInformationException.cs
- RelatedPropertyManager.cs
- PropertyChangeTracker.cs
- ConditionedDesigner.cs
- DecoderFallbackWithFailureFlag.cs
- Region.cs
- DefaultSection.cs
- CodeRemoveEventStatement.cs
- CommonDialog.cs
- PolyQuadraticBezierSegment.cs
- ObjectList.cs
- VisualStyleRenderer.cs
- XmlMemberMapping.cs
- FixedSOMContainer.cs
- WinOEToolBoxItem.cs
- GAC.cs
- SharedConnectionWorkflowTransactionService.cs
- HttpsHostedTransportConfiguration.cs
- ProcessHostServerConfig.cs
- DynamicExpression.cs
- TextFormatter.cs
- XXXOnTypeBuilderInstantiation.cs
- RangeValuePattern.cs
- FieldValue.cs