Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- ExtendedProtectionPolicy.cs
- TextRenderer.cs
- QilSortKey.cs
- DataGridViewRowDividerDoubleClickEventArgs.cs
- ProfileManager.cs
- ExpandableObjectConverter.cs
- HttpConfigurationSystem.cs
- SupportedAddressingMode.cs
- Button.cs
- RowUpdatingEventArgs.cs
- InvokePatternIdentifiers.cs
- StringTraceRecord.cs
- XPathMultyIterator.cs
- WebPartDisplayModeCollection.cs
- DesignerAdapterUtil.cs
- CTreeGenerator.cs
- RepeaterItemCollection.cs
- UInt64.cs
- _ListenerResponseStream.cs
- RangeValuePattern.cs
- RefreshPropertiesAttribute.cs
- MemoryMappedFile.cs
- FactoryRecord.cs
- OdbcConnectionOpen.cs
- ByteStorage.cs
- MethodBody.cs
- NullableDoubleSumAggregationOperator.cs
- PartManifestEntry.cs
- SkipStoryboardToFill.cs
- Pens.cs
- InstanceHandleReference.cs
- AttributeCollection.cs
- RepeatButtonAutomationPeer.cs
- ResXDataNode.cs
- XmlFormatWriterGenerator.cs
- VisualStyleTypesAndProperties.cs
- WebPartConnectVerb.cs
- StrongNameIdentityPermission.cs
- StringComparer.cs
- RestHandlerFactory.cs
- AmbiguousMatchException.cs
- DetailsViewActionList.cs
- MethodBody.cs
- SizeConverter.cs
- TextTreeRootTextBlock.cs
- ComboBox.cs
- DecimalStorage.cs
- DiscriminatorMap.cs
- Dynamic.cs
- TypeExtensionConverter.cs
- Triplet.cs
- OleDbReferenceCollection.cs
- ArglessEventHandlerProxy.cs
- WebPartUserCapability.cs
- MessageSecurityOverMsmq.cs
- ModelProperty.cs
- PDBReader.cs
- Transform.cs
- TimelineGroup.cs
- NavigationProperty.cs
- XsdDuration.cs
- XPathPatternBuilder.cs
- DetailsViewInsertEventArgs.cs
- TableLayoutSettings.cs
- ParagraphVisual.cs
- CapabilitiesPattern.cs
- EncodingDataItem.cs
- PeerResolverBindingElement.cs
- ImpersonationContext.cs
- List.cs
- SQLConvert.cs
- FunctionImportMapping.ReturnTypeRenameMapping.cs
- DataGridClipboardHelper.cs
- CodeThrowExceptionStatement.cs
- NamespaceCollection.cs
- SizeAnimationUsingKeyFrames.cs
- OutOfMemoryException.cs
- LogicalExpr.cs
- EndpointDiscoveryBehavior.cs
- NativeMethods.cs
- RequestUriProcessor.cs
- isolationinterop.cs
- XsltInput.cs
- NativeMethods.cs
- AuthorizationRule.cs
- ConfigurationManager.cs
- SimpleMailWebEventProvider.cs
- InvalidCastException.cs
- CompiledELinqQueryState.cs
- ToolStripDropDownItem.cs
- XamlSerializerUtil.cs
- SmtpCommands.cs
- MatrixAnimationUsingKeyFrames.cs
- DataGridViewComboBoxColumn.cs
- WebConfigurationManager.cs
- ReflectEventDescriptor.cs
- MemoryMappedViewStream.cs
- GroupPartitionExpr.cs
- XmlSchemaSet.cs
- DataRow.cs