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
- LinqDataSource.cs
- WebPartMenuStyle.cs
- Base64Stream.cs
- DataGridPagingPage.cs
- UIElementIsland.cs
- ParamArrayAttribute.cs
- CustomPopupPlacement.cs
- EditorBrowsableAttribute.cs
- CacheRequest.cs
- CodeRegionDirective.cs
- ISAPIRuntime.cs
- AppSettingsReader.cs
- NavigatingCancelEventArgs.cs
- XmlAttributeProperties.cs
- NavigationPropertyEmitter.cs
- CounterCreationDataCollection.cs
- XamlStream.cs
- DataGridDesigner.cs
- SectionUpdates.cs
- RelationshipManager.cs
- XmlNamedNodeMap.cs
- EntityDataSourceContextCreatedEventArgs.cs
- ChainedAsyncResult.cs
- MenuItemStyle.cs
- DbParameterHelper.cs
- RequestCachePolicy.cs
- SpeechSynthesizer.cs
- WebRequestModuleElement.cs
- EllipseGeometry.cs
- Canvas.cs
- LinearKeyFrames.cs
- DisplayClaim.cs
- WmlValidatorAdapter.cs
- CompModHelpers.cs
- XmlSchemaInferenceException.cs
- WorkflowMessageEventHandler.cs
- TemplateContent.cs
- LocalizedNameDescriptionPair.cs
- FormViewRow.cs
- ProxyFragment.cs
- TransportBindingElement.cs
- DtrList.cs
- Enum.cs
- Utils.cs
- QueryOperator.cs
- MediaElement.cs
- InterleavedZipPartStream.cs
- LocalizationComments.cs
- InternalConfigRoot.cs
- StrokeNode.cs
- ObjectQuery.cs
- DictionaryContent.cs
- FragmentNavigationEventArgs.cs
- __ConsoleStream.cs
- SqlColumnizer.cs
- RijndaelCryptoServiceProvider.cs
- ProcessHostServerConfig.cs
- Propagator.ExtentPlaceholderCreator.cs
- ColumnResult.cs
- MemoryRecordBuffer.cs
- XmlAttributeAttribute.cs
- CollectionBuilder.cs
- DataViewListener.cs
- OleDbPropertySetGuid.cs
- SystemIPv4InterfaceProperties.cs
- XsltInput.cs
- Guid.cs
- ObjectHelper.cs
- VsPropertyGrid.cs
- AuthenticationException.cs
- PasswordBoxAutomationPeer.cs
- NetTcpSectionData.cs
- glyphs.cs
- StaticResourceExtension.cs
- DataBinding.cs
- StorageRoot.cs
- MemberInitExpression.cs
- RoleBoolean.cs
- SelectionUIHandler.cs
- HttpHandlerActionCollection.cs
- DomainUpDown.cs
- PersonalizableAttribute.cs
- WebPartUtil.cs
- LogWriteRestartAreaAsyncResult.cs
- CommonObjectSecurity.cs
- SearchExpression.cs
- AudioFormatConverter.cs
- DataListItemCollection.cs
- ApplicationTrust.cs
- AliasedSlot.cs
- AnnotationAuthorChangedEventArgs.cs
- CookielessData.cs
- DocumentOrderQuery.cs
- TextClipboardData.cs
- RemotingAttributes.cs
- TextContainerHelper.cs
- DataViewSetting.cs
- NameTable.cs
- URLAttribute.cs
- TransformationRules.cs