Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- UriTemplateTable.cs
- SimpleBitVector32.cs
- SelectedDatesCollection.cs
- AssemblyInfo.cs
- ModelFactory.cs
- SignatureTargetIdManager.cs
- XomlCompilerResults.cs
- ProfileSettings.cs
- ErrorTableItemStyle.cs
- ThemeableAttribute.cs
- mda.cs
- LinkAreaEditor.cs
- ISAPIApplicationHost.cs
- StatusBar.cs
- WeakEventTable.cs
- CheckBox.cs
- BitmapEffectState.cs
- panel.cs
- InputLanguageManager.cs
- SchemaTypeEmitter.cs
- RuleSet.cs
- PrintingPermission.cs
- httpstaticobjectscollection.cs
- ComplusEndpointConfigContainer.cs
- ResourceDisplayNameAttribute.cs
- SoapFormatterSinks.cs
- BorderSidesEditor.cs
- XmlProcessingInstruction.cs
- BoundColumn.cs
- SystemNetworkInterface.cs
- NamespaceDecl.cs
- DispatchWrapper.cs
- KeyConstraint.cs
- WpfPayload.cs
- BooleanToVisibilityConverter.cs
- DataGridViewComboBoxEditingControl.cs
- SqlServices.cs
- MorphHelper.cs
- COM2DataTypeToManagedDataTypeConverter.cs
- HexParser.cs
- StylusPointPropertyInfoDefaults.cs
- DataSet.cs
- RayMeshGeometry3DHitTestResult.cs
- EncoderFallback.cs
- RefExpr.cs
- WebPartConnectionsCloseVerb.cs
- OdbcConnectionStringbuilder.cs
- Deflater.cs
- ValueChangedEventManager.cs
- QuadraticBezierSegment.cs
- DataGridView.cs
- Freezable.cs
- HasCopySemanticsAttribute.cs
- ConvertBinder.cs
- BamlBinaryWriter.cs
- CacheVirtualItemsEvent.cs
- FixedTextPointer.cs
- Exceptions.cs
- IndicCharClassifier.cs
- ContainerControl.cs
- CallTemplateAction.cs
- HMACSHA512.cs
- DirectoryObjectSecurity.cs
- XmlEncoding.cs
- InvalidDocumentContentsException.cs
- XXXOnTypeBuilderInstantiation.cs
- UriWriter.cs
- HwndSourceParameters.cs
- DocumentViewerAutomationPeer.cs
- UIElementPropertyUndoUnit.cs
- InfoCardKeyedHashAlgorithm.cs
- ForEachAction.cs
- ServiceOperationParameter.cs
- ObjectItemCachedAssemblyLoader.cs
- WebPartsPersonalizationAuthorization.cs
- streamingZipPartStream.cs
- MenuItemStyleCollection.cs
- LoginCancelEventArgs.cs
- RawStylusInputReport.cs
- OlePropertyStructs.cs
- Model3DCollection.cs
- DynamicPhysicalDiscoSearcher.cs
- QueryExpression.cs
- LongCountAggregationOperator.cs
- Message.cs
- AutoCompleteStringCollection.cs
- PersonalizationStateQuery.cs
- Int32CAMarshaler.cs
- FactoryGenerator.cs
- InkCanvasSelection.cs
- SqlTriggerAttribute.cs
- SelectionRangeConverter.cs
- SqlPersonalizationProvider.cs
- BaseValidator.cs
- ChangeInterceptorAttribute.cs
- ProcessDesigner.cs
- Renderer.cs
- Visitor.cs
- ASCIIEncoding.cs
- ListParaClient.cs