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
- TableChangeProcessor.cs
- ManipulationCompletedEventArgs.cs
- DesignTimeParseData.cs
- ToolboxItemFilterAttribute.cs
- RelationshipFixer.cs
- EndPoint.cs
- EncryptedPackage.cs
- InternalsVisibleToAttribute.cs
- Rotation3D.cs
- prompt.cs
- XpsS0ValidatingLoader.cs
- OutputCacheSettings.cs
- WindowManager.cs
- XmlElement.cs
- StaticSiteMapProvider.cs
- SizeIndependentAnimationStorage.cs
- ProtocolsConfigurationHandler.cs
- ManipulationLogic.cs
- ObjectView.cs
- OdbcErrorCollection.cs
- VersionPair.cs
- ToolStripPanelRenderEventArgs.cs
- ResourceDefaultValueAttribute.cs
- LinkButton.cs
- DocumentPageTextView.cs
- _HelperAsyncResults.cs
- CompilationSection.cs
- SimplePropertyEntry.cs
- Span.cs
- SessionSwitchEventArgs.cs
- PersonalizationState.cs
- QilGeneratorEnv.cs
- StylesEditorDialog.cs
- JapaneseCalendar.cs
- AuditLevel.cs
- KnownTypeHelper.cs
- SiteMapDataSourceView.cs
- PointLight.cs
- WindowsListViewGroup.cs
- TextElementEditingBehaviorAttribute.cs
- tibetanshape.cs
- SettingsAttributeDictionary.cs
- Rect.cs
- DataGridViewRowContextMenuStripNeededEventArgs.cs
- HtmlInputHidden.cs
- DebugHandleTracker.cs
- SecurityDescriptor.cs
- DragDeltaEventArgs.cs
- XmlQueryStaticData.cs
- ImageList.cs
- ByteAnimation.cs
- InterleavedZipPartStream.cs
- ContentFileHelper.cs
- MarkedHighlightComponent.cs
- StyleModeStack.cs
- AuthorizationRuleCollection.cs
- RegexRunnerFactory.cs
- ObjectDataSourceStatusEventArgs.cs
- OleDbParameterCollection.cs
- XmlSchemaComplexType.cs
- WebServiceParameterData.cs
- ObjectDataProvider.cs
- smtpconnection.cs
- SqlConnectionStringBuilder.cs
- BooleanProjectedSlot.cs
- MissingMethodException.cs
- GridErrorDlg.cs
- XamlDebuggerXmlReader.cs
- Peer.cs
- ConstraintStruct.cs
- Error.cs
- PreloadHost.cs
- ConnectionStringsExpressionBuilder.cs
- OperationCanceledException.cs
- RichTextBoxConstants.cs
- ParserContext.cs
- parserscommon.cs
- MemoryMappedViewAccessor.cs
- ConstraintCollection.cs
- CodePrimitiveExpression.cs
- CheckBox.cs
- LocalizationParserHooks.cs
- WebPartZoneBaseDesigner.cs
- ProviderConnectionPointCollection.cs
- DataFieldCollectionEditor.cs
- ArraySet.cs
- TypeBuilderInstantiation.cs
- AudioFileOut.cs
- FontClient.cs
- StylusEditingBehavior.cs
- AppDomainAttributes.cs
- SpeechEvent.cs
- MultipartIdentifier.cs
- URLMembershipCondition.cs
- SelectionRange.cs
- EnumType.cs
- StyleXamlParser.cs
- EditingCoordinator.cs
- Stopwatch.cs
- SrgsItemList.cs