Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / ndp / fx / src / xsp / System / Web / UI / DataBindingCollection.cs / 2 / 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();
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SystemWebSectionGroup.cs
- DataList.cs
- UriParserTemplates.cs
- CharEnumerator.cs
- HtmlInputReset.cs
- Exception.cs
- DynamicILGenerator.cs
- InlineObject.cs
- GrammarBuilderRuleRef.cs
- TransformBlockRequest.cs
- SynchronizedPool.cs
- NotifyCollectionChangedEventArgs.cs
- ArithmeticLiteral.cs
- TransformGroup.cs
- ProviderConnectionPointCollection.cs
- filewebresponse.cs
- ScriptResourceAttribute.cs
- DataGridViewTopRowAccessibleObject.cs
- SafeFreeMibTable.cs
- ConnectionPointCookie.cs
- Delay.cs
- ViewStateModeByIdAttribute.cs
- RangeValuePatternIdentifiers.cs
- XPathNodeInfoAtom.cs
- Tablet.cs
- FreeFormDragDropManager.cs
- DBNull.cs
- CachingParameterInspector.cs
- MailMessageEventArgs.cs
- UpdateProgress.cs
- Header.cs
- AmbientLight.cs
- SystemColors.cs
- wgx_render.cs
- ScriptResourceAttribute.cs
- ConstructorNeedsTagAttribute.cs
- RecordsAffectedEventArgs.cs
- SourceFileBuildProvider.cs
- WebPartMenu.cs
- ComboBoxDesigner.cs
- DataPointer.cs
- TextModifierScope.cs
- MetadataPropertyvalue.cs
- EntityClientCacheEntry.cs
- PageParserFilter.cs
- ConsoleTraceListener.cs
- ObjectParameterCollection.cs
- UnicastIPAddressInformationCollection.cs
- DataGridViewCellLinkedList.cs
- OleDbCommandBuilder.cs
- HttpClientCertificate.cs
- RC2CryptoServiceProvider.cs
- ColorConverter.cs
- QilVisitor.cs
- UnknownWrapper.cs
- XmlCharacterData.cs
- ReflectionPermission.cs
- FixedPosition.cs
- UpdateManifestForBrowserApplication.cs
- EpmSyndicationContentSerializer.cs
- ImmComposition.cs
- RotationValidation.cs
- ConstructorNeedsTagAttribute.cs
- OptimizerPatterns.cs
- CodeStatementCollection.cs
- StrongNameIdentityPermission.cs
- VirtualPathUtility.cs
- WSDualHttpSecurity.cs
- OleDbRowUpdatingEvent.cs
- QuaternionAnimation.cs
- TargetFrameworkUtil.cs
- MultipartContentParser.cs
- ResourceProperty.cs
- CellConstant.cs
- SpotLight.cs
- ResourceWriter.cs
- StdValidatorsAndConverters.cs
- SettingsAttributes.cs
- TableAutomationPeer.cs
- BlobPersonalizationState.cs
- PropertySourceInfo.cs
- Directory.cs
- TextSelectionHelper.cs
- SelectedGridItemChangedEvent.cs
- TreeWalkHelper.cs
- BoundPropertyEntry.cs
- CaseStatement.cs
- WorkflowShape.cs
- OleDbWrapper.cs
- MetabaseReader.cs
- SQLInt16.cs
- TextRunCacheImp.cs
- HtmlTextViewAdapter.cs
- TogglePattern.cs
- DelegatedStream.cs
- WebProxyScriptElement.cs
- ConfigurationPermission.cs
- _ContextAwareResult.cs
- SearchExpression.cs
- PreviewPageInfo.cs