Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / 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: [....]/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
- FixedTextView.cs
- TypeLoadException.cs
- DelegatedStream.cs
- SQLMembershipProvider.cs
- ReflectionUtil.cs
- Comparer.cs
- ClientEventManager.cs
- FreezableCollection.cs
- List.cs
- UriParserTemplates.cs
- Task.cs
- FormView.cs
- SelectionItemProviderWrapper.cs
- WithStatement.cs
- complextypematerializer.cs
- MappingMetadataHelper.cs
- FontSizeConverter.cs
- TranslateTransform3D.cs
- IgnorePropertiesAttribute.cs
- Overlapped.cs
- IteratorFilter.cs
- DataService.cs
- ResourceProperty.cs
- FunctionGenerator.cs
- DispatcherExceptionFilterEventArgs.cs
- ServerValidateEventArgs.cs
- GuidConverter.cs
- ImportContext.cs
- GeneratedCodeAttribute.cs
- ChannelSinkStacks.cs
- ReflectionTypeLoadException.cs
- DataControlFieldHeaderCell.cs
- XmlSerializableWriter.cs
- PrePrepareMethodAttribute.cs
- SchemaImporterExtensionsSection.cs
- DaylightTime.cs
- UnionCqlBlock.cs
- LexicalChunk.cs
- Funcletizer.cs
- MachineKeyValidationConverter.cs
- __FastResourceComparer.cs
- isolationinterop.cs
- InstanceData.cs
- EventBuilder.cs
- Positioning.cs
- FixedPageProcessor.cs
- OdbcConnectionPoolProviderInfo.cs
- Utils.cs
- GrammarBuilder.cs
- ColorBlend.cs
- ConstructorBuilder.cs
- CollectionsUtil.cs
- ConfigurationStrings.cs
- XamlFrame.cs
- TextInfo.cs
- PlainXmlSerializer.cs
- DataGridBoolColumn.cs
- GuidelineCollection.cs
- CompilationPass2Task.cs
- StructuredTypeEmitter.cs
- DataGridViewColumnHeaderCell.cs
- InkCanvasAutomationPeer.cs
- SwitchExpression.cs
- PropertyTabAttribute.cs
- InsufficientMemoryException.cs
- MatrixCamera.cs
- UrlMappingsModule.cs
- LayoutManager.cs
- TraceSection.cs
- CodeTypeReference.cs
- LabelDesigner.cs
- BamlTreeNode.cs
- arc.cs
- NumberFormatter.cs
- WebControl.cs
- VisualBasicExpressionConverter.cs
- PropertyBuilder.cs
- InvalidEnumArgumentException.cs
- UpdateTracker.cs
- CopyAction.cs
- MobileFormsAuthentication.cs
- UiaCoreTypesApi.cs
- isolationinterop.cs
- WriteableBitmap.cs
- ContractBase.cs
- KeyboardDevice.cs
- SoapReflectionImporter.cs
- TextParagraphProperties.cs
- xmlglyphRunInfo.cs
- KeyProperty.cs
- SourceChangedEventArgs.cs
- RunClient.cs
- NativeWindow.cs
- CodeIndexerExpression.cs
- KnownBoxes.cs
- ScopelessEnumAttribute.cs
- CatalogPartChrome.cs
- CompilationUnit.cs
- MappingException.cs
- TransformerInfoCollection.cs