Code:
/ 4.0 / 4.0 / 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.
//------------------------------------------------------------
// 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
- OraclePermission.cs
- ExtenderControl.cs
- GradientSpreadMethodValidation.cs
- FigureParaClient.cs
- MappingMetadataHelper.cs
- ResourcePermissionBaseEntry.cs
- TrustExchangeException.cs
- LoadRetryConstantStrategy.cs
- documentsequencetextcontainer.cs
- WebPartsSection.cs
- HtmlAnchor.cs
- User.cs
- PlatformCulture.cs
- TabItemAutomationPeer.cs
- PageThemeParser.cs
- DataGridCaption.cs
- FixedSOMPageElement.cs
- SystemPens.cs
- BitmapEffectInputConnector.cs
- TemplateNodeContextMenu.cs
- TextFragmentEngine.cs
- MembershipSection.cs
- XmlSchemaCollection.cs
- SQLResource.cs
- XmlDocumentSchema.cs
- CommandCollectionEditor.cs
- SymbolType.cs
- TimeSpan.cs
- SmtpException.cs
- HWStack.cs
- TextMetrics.cs
- WebPartEditorApplyVerb.cs
- SerialStream.cs
- Label.cs
- XmlCustomFormatter.cs
- LeafCellTreeNode.cs
- EditingCoordinator.cs
- TableLayout.cs
- DataKey.cs
- XmlUtil.cs
- WriteFileContext.cs
- Matrix3DConverter.cs
- PropertyIDSet.cs
- PropertyEmitterBase.cs
- StructuralObject.cs
- TableRowCollection.cs
- ZoomingMessageFilter.cs
- BooleanToVisibilityConverter.cs
- FloatUtil.cs
- ParentControlDesigner.cs
- Metadata.cs
- MulticastNotSupportedException.cs
- ImageIndexConverter.cs
- _AutoWebProxyScriptWrapper.cs
- ObfuscateAssemblyAttribute.cs
- ScalarConstant.cs
- NumberSubstitution.cs
- BasicBrowserDialog.cs
- Symbol.cs
- WebBaseEventKeyComparer.cs
- FaultPropagationQuery.cs
- SerTrace.cs
- PipeStream.cs
- MenuItemStyle.cs
- MergePropertyDescriptor.cs
- BindingListCollectionView.cs
- FontUnit.cs
- Path.cs
- DbgUtil.cs
- HtmlMeta.cs
- SubclassTypeValidator.cs
- DataTemplateKey.cs
- DebugViewWriter.cs
- Pens.cs
- DBAsyncResult.cs
- FunctionDefinition.cs
- ObjRef.cs
- ParserContext.cs
- CompiledQuery.cs
- BamlTreeUpdater.cs
- AssemblyName.cs
- HexParser.cs
- MD5.cs
- BitmapEffectState.cs
- AttachedPropertyBrowsableWhenAttributePresentAttribute.cs
- CodeEntryPointMethod.cs
- SupportingTokenSecurityTokenResolver.cs
- SchemaComplexType.cs
- OperationCanceledException.cs
- XsdBuilder.cs
- DataGridViewCellContextMenuStripNeededEventArgs.cs
- XmlSchemaAnnotation.cs
- FlowPosition.cs
- MetadataArtifactLoader.cs
- NGCPageContentCollectionSerializerAsync.cs
- DateTimeValueSerializerContext.cs
- MenuItemStyleCollectionEditor.cs
- TreeNodeBindingCollection.cs
- AutoGeneratedFieldProperties.cs
- WindowsGraphics.cs