Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / System.Runtime.DurableInstancing / System / Runtime / Collections / ValidatingCollection.cs / 1305376 / ValidatingCollection.cs
//------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------
namespace System.Runtime.Collections
{
using System.Collections.ObjectModel;
// simple helper class to allow passing in a func that performs validations of
// acceptible values
class ValidatingCollection : Collection
{
public ValidatingCollection()
{
}
public Action OnAddValidationCallback { get; set; }
public Action OnMutateValidationCallback { get; set; }
void OnAdd(T item)
{
if (OnAddValidationCallback != null)
{
OnAddValidationCallback(item);
}
}
void OnMutate()
{
if (OnMutateValidationCallback != null)
{
OnMutateValidationCallback();
}
}
protected override void ClearItems()
{
OnMutate();
base.ClearItems();
}
protected override void InsertItem(int index, T item)
{
OnAdd(item);
base.InsertItem(index, item);
}
protected override void RemoveItem(int index)
{
OnMutate();
base.RemoveItem(index);
}
protected override void SetItem(int index, T item)
{
OnAdd(item);
OnMutate();
base.SetItem(index, item);
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- httpapplicationstate.cs
- RoleManagerSection.cs
- MatrixStack.cs
- RoleService.cs
- WebPartConnectionsCancelEventArgs.cs
- PasswordTextContainer.cs
- ErrorFormatterPage.cs
- SiteMapSection.cs
- WebBrowserPermission.cs
- Point4D.cs
- SpellCheck.cs
- InvalidEnumArgumentException.cs
- WebPartEditorOkVerb.cs
- DoubleKeyFrameCollection.cs
- FrameworkTemplate.cs
- SqlTransaction.cs
- AttachmentCollection.cs
- ServerValidateEventArgs.cs
- SharedPersonalizationStateInfo.cs
- ServiceX509SecurityTokenProvider.cs
- FormsAuthenticationUser.cs
- OneToOneMappingSerializer.cs
- ScriptingScriptResourceHandlerSection.cs
- DragEventArgs.cs
- DataServiceHostFactory.cs
- ColumnWidthChangedEvent.cs
- Rights.cs
- ClientSettingsProvider.cs
- InternalPolicyElement.cs
- RolePrincipal.cs
- ObjectDataSourceStatusEventArgs.cs
- ConnectionConsumerAttribute.cs
- UmAlQuraCalendar.cs
- DirectoryGroupQuery.cs
- MouseActionValueSerializer.cs
- Rotation3D.cs
- XamlToRtfWriter.cs
- Tuple.cs
- HtmlInputHidden.cs
- XPathNodeList.cs
- ObjectDataSourceSelectingEventArgs.cs
- EventItfInfo.cs
- OracleRowUpdatedEventArgs.cs
- WebBrowserNavigatingEventHandler.cs
- NamespaceList.cs
- DataTableExtensions.cs
- XmlRawWriterWrapper.cs
- XmlSchemaElement.cs
- ButtonBase.cs
- Vector3dCollection.cs
- FileFormatException.cs
- AssemblyNameProxy.cs
- ObjectDataSourceEventArgs.cs
- ToolStripOverflowButton.cs
- ProfessionalColorTable.cs
- EmptyQuery.cs
- FileDialogCustomPlacesCollection.cs
- GenericEnumConverter.cs
- RegionInfo.cs
- DataMemberAttribute.cs
- AttachedPropertyBrowsableForChildrenAttribute.cs
- AuditLevel.cs
- XmlSecureResolver.cs
- ProcessModelInfo.cs
- CompilationSection.cs
- ToggleProviderWrapper.cs
- CompoundFileIOPermission.cs
- _AuthenticationState.cs
- DataTableExtensions.cs
- SortedSetDebugView.cs
- Expression.cs
- ImageBrush.cs
- MostlySingletonList.cs
- HwndSource.cs
- Completion.cs
- WebCategoryAttribute.cs
- TextElementCollectionHelper.cs
- CLRBindingWorker.cs
- TransformerConfigurationWizardBase.cs
- ProxyWebPartManagerDesigner.cs
- TextEffectCollection.cs
- PartialTrustVisibleAssembly.cs
- ConstraintStruct.cs
- CompilerState.cs
- MSAAWinEventWrap.cs
- Int32RectConverter.cs
- HtmlForm.cs
- SqlCacheDependencySection.cs
- PrintDialogException.cs
- DoubleCollection.cs
- DateTimeFormatInfoScanner.cs
- XamlWrappingReader.cs
- AnchoredBlock.cs
- CodeTypeMember.cs
- OptimizerPatterns.cs
- AssemblyBuilder.cs
- FloatAverageAggregationOperator.cs
- ObjectStateManager.cs
- TypeTypeConverter.cs
- RealProxy.cs