Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / UI / DataBindingCollection.cs / 1 / DataBindingCollection.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.UI {
using System;
using System.Collections;
using System.Collections.Specialized;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Data;
using System.Web.Util;
using System.Security.Permissions;
///
///
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
public sealed class DataBindingCollection : ICollection {
private EventHandler changedEvent;
private Hashtable bindings;
private Hashtable removedBindings;
///
///
public DataBindingCollection() {
this.bindings = new Hashtable(StringComparer.OrdinalIgnoreCase);
}
///
///
public int Count {
get {
return bindings.Count;
}
}
///
///
public bool IsReadOnly {
get {
return false;
}
}
///
///
public bool IsSynchronized {
get {
return false;
}
}
///
///
public string[] RemovedBindings {
get {
int bindingCount = 0;
ICollection keys = null;
if (removedBindings != null) {
keys = removedBindings.Keys;
bindingCount = keys.Count;
string[] removedNames = new string[bindingCount];
int i = 0;
foreach (string s in keys) {
removedNames[i++] = s;
}
removedBindings.Clear();
return removedNames;
}
else {
return new string[0];
}
}
}
///
///
private Hashtable RemovedBindingsTable {
get {
if (removedBindings == null) {
removedBindings = new Hashtable(StringComparer.OrdinalIgnoreCase);
}
return removedBindings;
}
}
///
///
public object SyncRoot {
get {
return this;
}
}
///
///
public DataBinding this[string propertyName] {
get {
object o = bindings[propertyName];
if (o != null)
return(DataBinding)o;
return null;
}
}
public event EventHandler Changed {
add {
changedEvent = (EventHandler)Delegate.Combine(changedEvent, value);
}
remove {
changedEvent = (EventHandler)Delegate.Remove(changedEvent, value);
}
}
///
///
public void Add(DataBinding binding) {
bindings[binding.PropertyName] = binding;
RemovedBindingsTable.Remove(binding.PropertyName);
OnChanged();
}
///
///
public bool Contains(string propertyName) {
return bindings.Contains(propertyName);
}
///
///
public void Clear() {
ICollection keys = bindings.Keys;
if ((keys.Count != 0) && (removedBindings == null)) {
// ensure the removedBindings hashtable is created
Hashtable h = RemovedBindingsTable;
}
foreach (string s in keys) {
removedBindings[s] = String.Empty;
}
bindings.Clear();
OnChanged();
}
///
///
public void CopyTo(Array array, int index) {
for (IEnumerator e = this.GetEnumerator(); e.MoveNext();)
array.SetValue(e.Current, index++);
}
///
///
public IEnumerator GetEnumerator() {
return bindings.Values.GetEnumerator();
}
private void OnChanged() {
if (changedEvent != null) {
changedEvent(this, EventArgs.Empty);
}
}
///
///
public void Remove(string propertyName) {
Remove(propertyName, true);
}
///
///
public void Remove(DataBinding binding) {
Remove(binding.PropertyName, true);
}
///
///
public void Remove(string propertyName, bool addToRemovedList) {
if (Contains(propertyName)) {
bindings.Remove(propertyName);
if (addToRemovedList) {
RemovedBindingsTable[propertyName] = String.Empty;
}
OnChanged();
}
}
}
}
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- MergeLocalizationDirectives.cs
- StyleTypedPropertyAttribute.cs
- DataSvcMapFile.cs
- OrderPreservingMergeHelper.cs
- GetPageNumberCompletedEventArgs.cs
- DataPagerFieldCollection.cs
- ErrorRuntimeConfig.cs
- PeerObject.cs
- ModelTreeEnumerator.cs
- PointAnimationClockResource.cs
- LineProperties.cs
- BaseParaClient.cs
- DebugInfoExpression.cs
- DesignOnlyAttribute.cs
- InstanceData.cs
- _StreamFramer.cs
- ImportContext.cs
- ReflectionPermission.cs
- StylusShape.cs
- Char.cs
- OutputCacheSettingsSection.cs
- DataGridrowEditEndingEventArgs.cs
- SystemIPGlobalProperties.cs
- ScrollBar.cs
- CodeStatementCollection.cs
- CellTreeNode.cs
- StatusBarDrawItemEvent.cs
- MatrixAnimationBase.cs
- DataSourceControl.cs
- CompiledQueryCacheKey.cs
- WindowsEditBoxRange.cs
- ZipIOExtraFieldElement.cs
- SHA256Managed.cs
- Int64AnimationBase.cs
- EmptyStringExpandableObjectConverter.cs
- UInt32Converter.cs
- PenThreadPool.cs
- AmbientLight.cs
- RegexBoyerMoore.cs
- EncoderExceptionFallback.cs
- HTTPNotFoundHandler.cs
- TemplateBuilder.cs
- configsystem.cs
- PlainXmlWriter.cs
- TypeInitializationException.cs
- ToolStripLocationCancelEventArgs.cs
- AutoGeneratedField.cs
- ChangeConflicts.cs
- Geometry3D.cs
- DbException.cs
- QuerySetOp.cs
- ColorConvertedBitmap.cs
- CollectionViewGroupInternal.cs
- HttpRuntimeSection.cs
- ReferenceSchema.cs
- DataGrid.cs
- ColumnTypeConverter.cs
- OpenTypeCommon.cs
- XmlSchemaComplexType.cs
- WebException.cs
- GroupItemAutomationPeer.cs
- ClientOptions.cs
- ConstructorExpr.cs
- CatalogZoneBase.cs
- DateTimePickerDesigner.cs
- Win32.cs
- ToolStripSplitButton.cs
- PixelShader.cs
- DataReaderContainer.cs
- ByteAnimationBase.cs
- InputLanguage.cs
- XmlQueryOutput.cs
- SortExpressionBuilder.cs
- StandardOleMarshalObject.cs
- NotFiniteNumberException.cs
- XmlSubtreeReader.cs
- NetworkAddressChange.cs
- FormatterServices.cs
- BitmapPalette.cs
- Triplet.cs
- CommonDialog.cs
- ObsoleteAttribute.cs
- AlternateViewCollection.cs
- Stack.cs
- TcpClientSocketManager.cs
- OdbcParameter.cs
- XmlIgnoreAttribute.cs
- EventMetadata.cs
- EntityContainer.cs
- BitmapEffectInput.cs
- DataBindEngine.cs
- EncryptedKeyIdentifierClause.cs
- DataAdapter.cs
- UnhandledExceptionEventArgs.cs
- UnSafeCharBuffer.cs
- ReservationNotFoundException.cs
- RouteParser.cs
- CodeValidator.cs
- Rijndael.cs
- RowParagraph.cs