Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / UI / DataBindingCollection.cs / 1305376 / 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;
///
///
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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ApplicationSecurityInfo.cs
- BackgroundWorker.cs
- DispatcherTimer.cs
- StringToken.cs
- OwnerDrawPropertyBag.cs
- ReflectionTypeLoadException.cs
- ManagedIStream.cs
- ArraySegment.cs
- SqlServices.cs
- LineServicesCallbacks.cs
- WindowsPrincipal.cs
- EndpointReference.cs
- XmlAttributeAttribute.cs
- ClassData.cs
- MissingMemberException.cs
- InitializerFacet.cs
- ImportFileRequest.cs
- XmlArrayItemAttribute.cs
- ping.cs
- SelectionEditor.cs
- ProxyWebPartManagerDesigner.cs
- MapPathBasedVirtualPathProvider.cs
- IPCCacheManager.cs
- LocationReferenceEnvironment.cs
- XmlSchemaAll.cs
- GridViewDeletedEventArgs.cs
- DeploymentSection.cs
- SystemNetworkInterface.cs
- TimeSpanSecondsOrInfiniteConverter.cs
- PrintPreviewDialog.cs
- ConsoleTraceListener.cs
- ThaiBuddhistCalendar.cs
- PriorityItem.cs
- BamlRecordWriter.cs
- EnterpriseServicesHelper.cs
- rsa.cs
- NamespaceMapping.cs
- PenThread.cs
- RSAPKCS1KeyExchangeFormatter.cs
- ImageInfo.cs
- DPCustomTypeDescriptor.cs
- DbProviderSpecificTypePropertyAttribute.cs
- OrderedParallelQuery.cs
- ViewGenerator.cs
- DSACryptoServiceProvider.cs
- RuntimeHelpers.cs
- DetailsViewRow.cs
- UrlMappingsModule.cs
- NewArray.cs
- HtmlInputFile.cs
- TextTreePropertyUndoUnit.cs
- ManagedFilter.cs
- ScrollChangedEventArgs.cs
- SmtpNtlmAuthenticationModule.cs
- WebPartCancelEventArgs.cs
- Visitor.cs
- DataGridViewCellConverter.cs
- XPathScanner.cs
- SqlParameter.cs
- CodeSubDirectoriesCollection.cs
- SystemWebSectionGroup.cs
- GeneratedCodeAttribute.cs
- MultiBinding.cs
- NamespaceCollection.cs
- RecordConverter.cs
- WindowVisualStateTracker.cs
- Misc.cs
- OutOfMemoryException.cs
- CustomCredentialPolicy.cs
- ReadOnlyHierarchicalDataSourceView.cs
- BaseTreeIterator.cs
- SqlServer2KCompatibilityAnnotation.cs
- FontEditor.cs
- DataPagerFieldCollection.cs
- GeneralTransform3D.cs
- NativeMethods.cs
- ImageSource.cs
- DBSqlParserColumnCollection.cs
- DesignerForm.cs
- ExceptionRoutedEventArgs.cs
- Int32Converter.cs
- ItemsChangedEventArgs.cs
- BitmapEffectGroup.cs
- SimpleExpression.cs
- CqlBlock.cs
- Vector3DAnimationBase.cs
- MergeFilterQuery.cs
- ContextMenuStrip.cs
- SessionStateItemCollection.cs
- dsa.cs
- OrderPreservingSpoolingTask.cs
- SafeSecurityHandles.cs
- GB18030Encoding.cs
- DataGridViewElement.cs
- FormViewRow.cs
- OdbcParameter.cs
- FixUp.cs
- ColumnBinding.cs
- XmlAttributes.cs
- XmlDictionary.cs