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 / Controls / ValidationErrorCollection.cs / 1 / ValidationErrorCollection.cs
//---------------------------------------------------------------------------- // //// Copyright (C) 2003 by Microsoft Corporation. All rights reserved. // // // // Description: // ValidationErrorCollection contains the list of ValidationErrors from // the various Bindings and MultiBindings on an Element. ValidationErrorCollection // be set through the Validation.ErrorsProperty. // // See specs at http://avalon/connecteddata/Specs/Validation.mht // // History: // 5/3/2004 mharper: created. // //--------------------------------------------------------------------------- using System; using System.ComponentModel; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Windows; using System.Windows.Controls; using System.Windows.Data; namespace MS.Internal.Controls { ////// ValidationErrorCollection contains the list of ValidationErrors from /// the various Bindings and MultiBindings on an Element. ValidationErrorCollection /// be set through the Validation.ErrorsProperty. /// internal class ValidationErrorCollection : ObservableCollection{ /// /// Empty collection that serves as a default value for /// Validation.ErrorsProperty. /// public static readonly ReadOnlyObservableCollectionEmpty = new ReadOnlyObservableCollection (new ValidationErrorCollection()); /// /// called by base class Collection<T> when an item is added to list; /// protected override void InsertItem(int index, ValidationError item) { int existingIndex = FindErrorForBinding(item.BindingInError); // if there is already a ValidationError for this binding, // then throw if (existingIndex > -1) { throw new ArgumentException(SR.Get(SRID.DuplicatesNotAllowed), "validationError"); } base.InsertItem(index, item); } //----------------------------------------------------- // // Internal Methods // //----------------------------------------------------- #region Internal Methods static internal ReadOnlyObservableCollectionGetReadOnlyErrors(DependencyObject d) { ValidationErrorCollection errors = Validation.GetErrorsInternal(d); if (errors != null) { if (errors._readonlyWrapper == null) { errors._readonlyWrapper = new ReadOnlyObservableCollection (errors); } return errors._readonlyWrapper; } else { return Empty; } } #endregion Internal Methods //------------------------------------------------------ // // Private Methods // //----------------------------------------------------- #region Private Methods private int FindErrorForBinding(object binding) { for (int i = 0; i < this.Count; i++) { if (this[i].BindingInError == binding) { return i; } } return -1; } #endregion Private Methods ReadOnlyObservableCollection _readonlyWrapper; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //---------------------------------------------------------------------------- // // // Copyright (C) 2003 by Microsoft Corporation. All rights reserved. // // // // Description: // ValidationErrorCollection contains the list of ValidationErrors from // the various Bindings and MultiBindings on an Element. ValidationErrorCollection // be set through the Validation.ErrorsProperty. // // See specs at http://avalon/connecteddata/Specs/Validation.mht // // History: // 5/3/2004 mharper: created. // //--------------------------------------------------------------------------- using System; using System.ComponentModel; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Windows; using System.Windows.Controls; using System.Windows.Data; namespace MS.Internal.Controls { ////// ValidationErrorCollection contains the list of ValidationErrors from /// the various Bindings and MultiBindings on an Element. ValidationErrorCollection /// be set through the Validation.ErrorsProperty. /// internal class ValidationErrorCollection : ObservableCollection{ /// /// Empty collection that serves as a default value for /// Validation.ErrorsProperty. /// public static readonly ReadOnlyObservableCollectionEmpty = new ReadOnlyObservableCollection (new ValidationErrorCollection()); /// /// called by base class Collection<T> when an item is added to list; /// protected override void InsertItem(int index, ValidationError item) { int existingIndex = FindErrorForBinding(item.BindingInError); // if there is already a ValidationError for this binding, // then throw if (existingIndex > -1) { throw new ArgumentException(SR.Get(SRID.DuplicatesNotAllowed), "validationError"); } base.InsertItem(index, item); } //----------------------------------------------------- // // Internal Methods // //----------------------------------------------------- #region Internal Methods static internal ReadOnlyObservableCollectionGetReadOnlyErrors(DependencyObject d) { ValidationErrorCollection errors = Validation.GetErrorsInternal(d); if (errors != null) { if (errors._readonlyWrapper == null) { errors._readonlyWrapper = new ReadOnlyObservableCollection (errors); } return errors._readonlyWrapper; } else { return Empty; } } #endregion Internal Methods //------------------------------------------------------ // // Private Methods // //----------------------------------------------------- #region Private Methods private int FindErrorForBinding(object binding) { for (int i = 0; i < this.Count; i++) { if (this[i].BindingInError == binding) { return i; } } return -1; } #endregion Private Methods ReadOnlyObservableCollection _readonlyWrapper; } } // 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
- DesignerPainter.cs
- DebugController.cs
- SqlDataReader.cs
- RequestBringIntoViewEventArgs.cs
- XsdBuilder.cs
- DesignSurface.cs
- Models.cs
- TextOutput.cs
- TrackingCondition.cs
- QuotedPairReader.cs
- ObjectAssociationEndMapping.cs
- ApplicationFileParser.cs
- Crc32Helper.cs
- TypeSource.cs
- UnknownWrapper.cs
- DbBuffer.cs
- IdnMapping.cs
- CmsInterop.cs
- WaitingCursor.cs
- SystemResourceHost.cs
- XmlAtomErrorReader.cs
- InfoCardRSAPKCS1SignatureDeformatter.cs
- webbrowsersite.cs
- Axis.cs
- DataStreams.cs
- ComponentConverter.cs
- HttpCapabilitiesSectionHandler.cs
- Pkcs9Attribute.cs
- ToolStripItemImageRenderEventArgs.cs
- EntityModelBuildProvider.cs
- ExtensionFile.cs
- SchemaExporter.cs
- DnsElement.cs
- ConstructorArgumentAttribute.cs
- ParamArrayAttribute.cs
- ContextBase.cs
- ToolStripPanelRow.cs
- EntityTemplateUserControl.cs
- ContextMenuService.cs
- TrackingRecord.cs
- AppDomainShutdownMonitor.cs
- SendParametersContent.cs
- XmlEnumAttribute.cs
- LineBreak.cs
- DoubleLink.cs
- CombinedGeometry.cs
- TypeDescriptionProvider.cs
- XmlIgnoreAttribute.cs
- SHA1.cs
- TextDecorationCollection.cs
- Preprocessor.cs
- CapabilitiesState.cs
- BindableTemplateBuilder.cs
- MergeFailedEvent.cs
- DecimalStorage.cs
- XmlRawWriterWrapper.cs
- AssemblyCache.cs
- Int16AnimationBase.cs
- HttpCapabilitiesSectionHandler.cs
- XmlSchemaType.cs
- DetailsViewModeEventArgs.cs
- Visual3D.cs
- Point4DValueSerializer.cs
- precedingquery.cs
- GroupBoxRenderer.cs
- UInt64Storage.cs
- MdiWindowListStrip.cs
- StringHandle.cs
- ManagementClass.cs
- StdValidatorsAndConverters.cs
- SiteMapProvider.cs
- XPathScanner.cs
- CompilerGlobalScopeAttribute.cs
- Splitter.cs
- UserValidatedEventArgs.cs
- CodeDelegateCreateExpression.cs
- BaseParagraph.cs
- HttpPostProtocolImporter.cs
- XmlNodeReader.cs
- InvalidEnumArgumentException.cs
- ImpersonateTokenRef.cs
- RegionIterator.cs
- EditingScopeUndoUnit.cs
- TimerElapsedEvenArgs.cs
- SqlDataSourceConfigureFilterForm.cs
- GradientStop.cs
- ImagingCache.cs
- DSASignatureDeformatter.cs
- Decimal.cs
- OdbcConnectionOpen.cs
- AsymmetricAlgorithm.cs
- AuthenticodeSignatureInformation.cs
- Visitor.cs
- WebPartVerbsEventArgs.cs
- VisualTreeUtils.cs
- ExternalFile.cs
- ToolBar.cs
- CursorConverter.cs
- ConfigurationLocation.cs
- FrameAutomationPeer.cs