Code:
/ 4.0 / 4.0 / 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. //---------------------------------------------------------------------------- // //// 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
- ProfilePropertySettingsCollection.cs
- relpropertyhelper.cs
- ReadOnlyTernaryTree.cs
- keycontainerpermission.cs
- EntityModelBuildProvider.cs
- TypeConverterHelper.cs
- followingquery.cs
- UInt64Converter.cs
- HtmlTernaryTree.cs
- MemberHolder.cs
- DeclarationUpdate.cs
- ContainerSelectorActiveEvent.cs
- sqlpipe.cs
- LinqDataSourceStatusEventArgs.cs
- VisualTarget.cs
- SetStoryboardSpeedRatio.cs
- DataGridCellAutomationPeer.cs
- MeasurementDCInfo.cs
- ProgressBar.cs
- ToolStripPanelSelectionGlyph.cs
- BinaryFormatter.cs
- VBCodeProvider.cs
- DeferredElementTreeState.cs
- FormattedText.cs
- WarningException.cs
- SliderAutomationPeer.cs
- DictionarySectionHandler.cs
- OperationAbortedException.cs
- MissingFieldException.cs
- _CacheStreams.cs
- ItemsPanelTemplate.cs
- Automation.cs
- PropertyNames.cs
- AuthenticatingEventArgs.cs
- _ScatterGatherBuffers.cs
- ThreadExceptionDialog.cs
- ReliabilityContractAttribute.cs
- CrossContextChannel.cs
- BamlRecordWriter.cs
- RegistryKey.cs
- SynchronizedKeyedCollection.cs
- HttpRequestContext.cs
- ElasticEase.cs
- DataGridViewColumnCollectionEditor.cs
- TextWriter.cs
- JsonReaderWriterFactory.cs
- CorePropertiesFilter.cs
- NullableIntSumAggregationOperator.cs
- XmlQueryOutput.cs
- ListMarkerSourceInfo.cs
- EntityContainerEmitter.cs
- XmlKeywords.cs
- GregorianCalendar.cs
- Header.cs
- LocalizationParserHooks.cs
- UInt16Converter.cs
- _CommandStream.cs
- RequestQueue.cs
- UnknownWrapper.cs
- TemplateXamlParser.cs
- COM2EnumConverter.cs
- WSTransactionSection.cs
- DuplicateWaitObjectException.cs
- reliableinputsessionchannel.cs
- ExpressionBindings.cs
- HtmlTable.cs
- WebGetAttribute.cs
- XmlUtf8RawTextWriter.cs
- CommandHelper.cs
- FileUtil.cs
- TreeNodeMouseHoverEvent.cs
- ListViewPagedDataSource.cs
- DeleteHelper.cs
- ToolStripGripRenderEventArgs.cs
- RegionInfo.cs
- SiteMapNodeItem.cs
- ShaperBuffers.cs
- DataControlField.cs
- TCPClient.cs
- RefreshEventArgs.cs
- KeyToListMap.cs
- TraceRecord.cs
- MetadataSerializer.cs
- PauseStoryboard.cs
- OpacityConverter.cs
- ShutDownListener.cs
- ProcessHostFactoryHelper.cs
- ElementUtil.cs
- TemplatePropertyEntry.cs
- _ProxyChain.cs
- SurrogateChar.cs
- cryptoapiTransform.cs
- LinkedDataMemberFieldEditor.cs
- FileUtil.cs
- BoundingRectTracker.cs
- VerticalAlignConverter.cs
- WebPartDisplayModeEventArgs.cs
- RoleGroupCollection.cs
- HttpRawResponse.cs
- ContractMapping.cs