Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ErasingStroke.cs
- SystemIPv4InterfaceProperties.cs
- UrlPath.cs
- SchemaImporter.cs
- XpsFont.cs
- TableHeaderCell.cs
- BamlLocalizabilityResolver.cs
- AnnotationResourceCollection.cs
- SafeNativeMethodsCLR.cs
- LinkTarget.cs
- LassoHelper.cs
- MetafileHeader.cs
- Tracking.cs
- AuthorizationRule.cs
- MachineKeyValidationConverter.cs
- OleStrCAMarshaler.cs
- ProtectedProviderSettings.cs
- SecurityTokenValidationException.cs
- PhysicalOps.cs
- StringInfo.cs
- httpapplicationstate.cs
- EntityTypeEmitter.cs
- OutOfMemoryException.cs
- BindingExpressionBase.cs
- IdentityNotMappedException.cs
- XmlStringTable.cs
- SqlHelper.cs
- FileEnumerator.cs
- KeyPullup.cs
- CompoundFileDeflateTransform.cs
- QueryableFilterRepeater.cs
- LineUtil.cs
- SynchronizingStream.cs
- ScriptServiceAttribute.cs
- SqlDataSourceCommandEventArgs.cs
- XmlDataProvider.cs
- ReturnType.cs
- WinEventQueueItem.cs
- TransformGroup.cs
- InstanceDataCollection.cs
- TextServicesManager.cs
- WindowsGraphicsWrapper.cs
- DbConnectionClosed.cs
- RoamingStoreFileUtility.cs
- CompilerHelpers.cs
- AssertFilter.cs
- ComAdminWrapper.cs
- MultiByteCodec.cs
- EventBuilder.cs
- XhtmlTextWriter.cs
- MenuItem.cs
- FlowDocumentPaginator.cs
- SamlEvidence.cs
- IntranetCredentialPolicy.cs
- InkCanvasSelectionAdorner.cs
- TimeSpanStorage.cs
- ProgressBarBrushConverter.cs
- FlowPanelDesigner.cs
- TTSVoice.cs
- CircleHotSpot.cs
- Variable.cs
- EdmSchemaError.cs
- WindowsToolbar.cs
- TableRowCollection.cs
- Win32Native.cs
- BackgroundWorker.cs
- RawTextInputReport.cs
- LocalizationComments.cs
- GeometryHitTestParameters.cs
- XmlSerializableServices.cs
- CachedCompositeFamily.cs
- NavigatingCancelEventArgs.cs
- TemplateXamlParser.cs
- Pair.cs
- ValidationHelper.cs
- UnsafeNativeMethods.cs
- Timeline.cs
- WindowsRichEdit.cs
- TableProvider.cs
- Int32Rect.cs
- UmAlQuraCalendar.cs
- HtmlInputHidden.cs
- WorkflowViewService.cs
- CallContext.cs
- ButtonPopupAdapter.cs
- DataDocumentXPathNavigator.cs
- EmptyQuery.cs
- ConstraintManager.cs
- ClockGroup.cs
- PageCatalogPart.cs
- ContextMenu.cs
- LineMetrics.cs
- ConfigurationConverterBase.cs
- ProtocolsConfigurationHandler.cs
- WindowsListViewGroupSubsetLink.cs
- ThreadExceptionEvent.cs
- WebPartManagerInternals.cs
- XamlPathDataSerializer.cs
- MemoryRecordBuffer.cs
- BatchStream.cs