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
- Currency.cs
- UInt64Converter.cs
- StreamUpdate.cs
- DriveNotFoundException.cs
- FontClient.cs
- CompilationUtil.cs
- ArrayElementGridEntry.cs
- Parser.cs
- OleDbCommand.cs
- HijriCalendar.cs
- Accessors.cs
- PrimitiveXmlSerializers.cs
- QilList.cs
- EntityDesignerUtils.cs
- MarkupCompilePass2.cs
- CssClassPropertyAttribute.cs
- AuthorizationBehavior.cs
- TextRangeBase.cs
- AutomationProperties.cs
- ModuleElement.cs
- LoginViewDesigner.cs
- DataGridViewRowDividerDoubleClickEventArgs.cs
- TabPanel.cs
- ReaderContextStackData.cs
- HttpStreamXmlDictionaryReader.cs
- AttributeEmitter.cs
- StringDictionaryCodeDomSerializer.cs
- TextMetrics.cs
- RTLAwareMessageBox.cs
- StickyNoteHelper.cs
- FolderNameEditor.cs
- BaseProcessor.cs
- AudioLevelUpdatedEventArgs.cs
- ServiceMemoryGates.cs
- NamedPipeConnectionPoolSettingsElement.cs
- TrackingWorkflowEventArgs.cs
- EventLogTraceListener.cs
- CompleteWizardStep.cs
- DataGridViewColumnDesignTimeVisibleAttribute.cs
- ShaderEffect.cs
- HttpSessionStateBase.cs
- ConsoleKeyInfo.cs
- OdbcTransaction.cs
- InnerItemCollectionView.cs
- SignatureToken.cs
- ColumnHeaderConverter.cs
- XamlClipboardData.cs
- FixedBufferAttribute.cs
- SafeNativeMethods.cs
- ParameterModifier.cs
- OdbcTransaction.cs
- WebPartEditorOkVerb.cs
- RichTextBoxConstants.cs
- TreeIterator.cs
- InputLanguageCollection.cs
- SQLInt64Storage.cs
- DataKey.cs
- WebServiceErrorEvent.cs
- JulianCalendar.cs
- ErrorHandler.cs
- WsdlInspector.cs
- ObjectQueryProvider.cs
- XamlTemplateSerializer.cs
- DataTableReader.cs
- AuthenticatedStream.cs
- CodeDirectionExpression.cs
- NamespaceList.cs
- AssemblyNameProxy.cs
- PropertyConverter.cs
- PropertyTab.cs
- TableSectionStyle.cs
- DetailsViewInsertEventArgs.cs
- Overlapped.cs
- CircleHotSpot.cs
- Wrapper.cs
- TypeInfo.cs
- SafePEFileHandle.cs
- SQLDecimalStorage.cs
- XPathNodeInfoAtom.cs
- VarRefManager.cs
- BindUriHelper.cs
- CollectionViewGroupInternal.cs
- VariableQuery.cs
- ReflectionUtil.cs
- SchemaTableColumn.cs
- ToolStripDropDownDesigner.cs
- CodeGen.cs
- PackWebResponse.cs
- HttpHandlerActionCollection.cs
- CharUnicodeInfo.cs
- StylusButtonCollection.cs
- XmlCodeExporter.cs
- FontDialog.cs
- Formatter.cs
- MappingItemCollection.cs
- InvalidFilterCriteriaException.cs
- SecondaryIndexList.cs
- PointUtil.cs
- EventToken.cs
- ParagraphVisual.cs