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
- DefaultCommandConverter.cs
- OdbcCommandBuilder.cs
- ThreadPool.cs
- DesignerLoader.cs
- TableColumn.cs
- Queue.cs
- _DomainName.cs
- ExcCanonicalXml.cs
- WorkflowOperationFault.cs
- ObjectConverter.cs
- CollectionBuilder.cs
- Decoder.cs
- BrowserCapabilitiesCompiler.cs
- PlainXmlDeserializer.cs
- DbModificationCommandTree.cs
- XamlDesignerSerializationManager.cs
- RefreshEventArgs.cs
- EDesignUtil.cs
- ValidationPropertyAttribute.cs
- XmlILAnnotation.cs
- RegexInterpreter.cs
- XPathCompiler.cs
- PanelDesigner.cs
- MailAddress.cs
- TypefaceMetricsCache.cs
- XmlUtil.cs
- SvcMapFile.cs
- WebServiceHostFactory.cs
- GenericsInstances.cs
- PersonalizablePropertyEntry.cs
- WebBrowserNavigatingEventHandler.cs
- DiffuseMaterial.cs
- MergeFailedEvent.cs
- SortedList.cs
- SpeakProgressEventArgs.cs
- ObjectAnimationBase.cs
- HtmlAnchor.cs
- PTConverter.cs
- Pen.cs
- UidPropertyAttribute.cs
- SortAction.cs
- DeclarativeCatalogPart.cs
- ErrorProvider.cs
- AdRotator.cs
- TextEditorTyping.cs
- HashMembershipCondition.cs
- TextTreeDeleteContentUndoUnit.cs
- WorkflowInstanceProvider.cs
- EventPropertyMap.cs
- ImageCodecInfo.cs
- BitmapEffectRenderDataResource.cs
- SqlParameter.cs
- XmlBindingWorker.cs
- XpsFilter.cs
- SmiGettersStream.cs
- DataColumnMappingCollection.cs
- ProfileSettingsCollection.cs
- MatchingStyle.cs
- ImplicitInputBrush.cs
- GroupStyle.cs
- ValidationErrorCollection.cs
- _NtlmClient.cs
- SqlDataAdapter.cs
- StaticSiteMapProvider.cs
- UseManagedPresentationBindingElementImporter.cs
- ManifestSignedXml.cs
- ImageMetadata.cs
- BitmapCodecInfo.cs
- ClockController.cs
- SqlSelectStatement.cs
- DeflateEmulationStream.cs
- EntityViewGenerationAttribute.cs
- FlowDocumentPageViewerAutomationPeer.cs
- PackageDigitalSignature.cs
- selecteditemcollection.cs
- BinaryNode.cs
- CompressionTracing.cs
- Binding.cs
- KeyPressEvent.cs
- TriggerAction.cs
- RelationalExpressions.cs
- DynamicPhysicalDiscoSearcher.cs
- InputLanguageEventArgs.cs
- MD5.cs
- GPRECTF.cs
- RestClientProxyHandler.cs
- SiteMapPath.cs
- LogArchiveSnapshot.cs
- NamespaceQuery.cs
- InkCanvasSelectionAdorner.cs
- MarginCollapsingState.cs
- RecognizeCompletedEventArgs.cs
- AuthenticationServiceManager.cs
- TabPage.cs
- XmlIlGenerator.cs
- PropertyMappingExceptionEventArgs.cs
- CodeAttributeArgument.cs
- CompilationRelaxations.cs
- SID.cs
- ListenDesigner.cs