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
- RegexNode.cs
- ISCIIEncoding.cs
- CodeTypeConstructor.cs
- DataTableExtensions.cs
- UnionCodeGroup.cs
- CodeTypeConstructor.cs
- RemoteWebConfigurationHostServer.cs
- DefaultPropertyAttribute.cs
- XmlValidatingReader.cs
- XmlILStorageConverter.cs
- XmlSchemaType.cs
- SqlServices.cs
- WorkflowElementDialogWindow.xaml.cs
- TemplateBindingExtension.cs
- WebConfigurationManager.cs
- HandlerWithFactory.cs
- ExpressionCopier.cs
- ADRole.cs
- SystemWebSectionGroup.cs
- ConcurrentDictionary.cs
- NameValueCollection.cs
- Double.cs
- InstanceOwnerQueryResult.cs
- SmiMetaDataProperty.cs
- GridViewAutomationPeer.cs
- DataGridView.cs
- SrgsSubset.cs
- CustomCategoryAttribute.cs
- WebExceptionStatus.cs
- DesignerDataTableBase.cs
- BamlLocalizableResource.cs
- NativeCppClassAttribute.cs
- IndexOutOfRangeException.cs
- RegexReplacement.cs
- PropertyPath.cs
- LongCountAggregationOperator.cs
- safelink.cs
- RowType.cs
- CheckBox.cs
- DecoderExceptionFallback.cs
- BCLDebug.cs
- Preprocessor.cs
- SystemColors.cs
- Fx.cs
- HtmlInputFile.cs
- PatternMatcher.cs
- XomlCompilerHelpers.cs
- SizeF.cs
- OleDbDataReader.cs
- SatelliteContractVersionAttribute.cs
- NativeMethods.cs
- Calendar.cs
- NamespaceMapping.cs
- DashStyle.cs
- CaseKeyBox.ViewModel.cs
- ResizeGrip.cs
- InOutArgument.cs
- ContentHostHelper.cs
- DiscoveryMessageSequence.cs
- DecoratedNameAttribute.cs
- DoubleConverter.cs
- DesignerSerializationOptionsAttribute.cs
- BufferedReadStream.cs
- DiagnosticsConfiguration.cs
- DescendantBaseQuery.cs
- FileSystemWatcher.cs
- externdll.cs
- HttpRawResponse.cs
- FileCodeGroup.cs
- Pen.cs
- TextTreeDeleteContentUndoUnit.cs
- LinkUtilities.cs
- DataGridViewRowHeightInfoNeededEventArgs.cs
- HyperlinkAutomationPeer.cs
- Figure.cs
- X509CertificateChain.cs
- GridViewSelectEventArgs.cs
- PartialCachingControl.cs
- OrderedDictionary.cs
- HashHelper.cs
- ListViewItem.cs
- SafeLocalMemHandle.cs
- EditorZone.cs
- wmiprovider.cs
- DataGridColumnHeaderAutomationPeer.cs
- WindowsToolbar.cs
- HttpApplication.cs
- DataColumnChangeEvent.cs
- NullableFloatAverageAggregationOperator.cs
- DocumentPageHost.cs
- WebResourceAttribute.cs
- DataPointer.cs
- SiteMembershipCondition.cs
- ReadOnlyAttribute.cs
- GridViewCommandEventArgs.cs
- XamlFxTrace.cs
- ViewStateException.cs
- HttpResponseWrapper.cs
- StateChangeEvent.cs
- ElementHostPropertyMap.cs