Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / UI / ExpressionBindingCollection.cs / 1305376 / ExpressionBindingCollection.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 ExpressionBindingCollection : ICollection {
private EventHandler changedEvent;
private Hashtable bindings;
private Hashtable removedBindings;
///
///
public ExpressionBindingCollection() {
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 ICollection 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 ExpressionBinding this[string propertyName] {
get {
object o = bindings[propertyName];
if (o != null)
return(ExpressionBinding)o;
return null;
}
}
public event EventHandler Changed {
add {
changedEvent = (EventHandler)Delegate.Combine(changedEvent, value);
}
remove {
changedEvent = (EventHandler)Delegate.Remove(changedEvent, value);
}
}
///
///
public void Add(ExpressionBinding binding) {
bindings[binding.PropertyName] = binding;
RemovedBindingsTable.Remove(binding.PropertyName);
OnChanged();
}
///
///
public bool Contains(string propName) {
return bindings.Contains(propName);
}
///
///
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 void CopyTo(ExpressionBinding[] 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(ExpressionBinding binding) {
Remove(binding.PropertyName, true);
}
///
///
public void Remove(string propertyName, bool addToRemovedList) {
if (Contains(propertyName)) {
if (addToRemovedList && bindings.Contains(propertyName)) {
RemovedBindingsTable[propertyName] = String.Empty;
}
bindings.Remove(propertyName);
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
- PageBuildProvider.cs
- WizardStepBase.cs
- CodeAccessSecurityEngine.cs
- DataReceivedEventArgs.cs
- CodeDOMProvider.cs
- XmlHierarchyData.cs
- VirtualPathUtility.cs
- DeferredSelectedIndexReference.cs
- SettingsSection.cs
- XmlUtilWriter.cs
- UnicastIPAddressInformationCollection.cs
- Vector3D.cs
- MethodInfo.cs
- XsltArgumentList.cs
- RootDesignerSerializerAttribute.cs
- EditorZone.cs
- SingleStorage.cs
- AuthenticationServiceManager.cs
- SendContent.cs
- Stroke2.cs
- FieldToken.cs
- ShutDownListener.cs
- DataSourceExpression.cs
- SourceItem.cs
- FormViewDeleteEventArgs.cs
- EdmItemCollection.cs
- ReturnType.cs
- SchemaNotation.cs
- CollaborationHelperFunctions.cs
- DataGridColumnReorderingEventArgs.cs
- StyleCollection.cs
- SoapCodeExporter.cs
- SettingsPropertyCollection.cs
- EntityType.cs
- IdentifierService.cs
- DeploymentSectionCache.cs
- TrackingMemoryStreamFactory.cs
- XmlException.cs
- CommandSet.cs
- Geometry3D.cs
- HttpCacheVaryByContentEncodings.cs
- StateManagedCollection.cs
- MetaModel.cs
- UnmanagedBitmapWrapper.cs
- DelayedRegex.cs
- Literal.cs
- METAHEADER.cs
- Attributes.cs
- DataPointer.cs
- CodePageUtils.cs
- Error.cs
- TemplatePropertyEntry.cs
- SiteMapNodeItemEventArgs.cs
- TokenFactoryBase.cs
- DefaultSerializationProviderAttribute.cs
- LinkLabelLinkClickedEvent.cs
- DomNameTable.cs
- WasAdminWrapper.cs
- ValuePattern.cs
- MemberAccessException.cs
- MeasureItemEvent.cs
- EllipticalNodeOperations.cs
- AnnotationHelper.cs
- CodeAttributeDeclarationCollection.cs
- EpmTargetPathSegment.cs
- NavigationProperty.cs
- GPPOINTF.cs
- DataGridViewTextBoxCell.cs
- DynamicValidatorEventArgs.cs
- DataObject.cs
- SqlDataSourceView.cs
- MetaModel.cs
- InternalException.cs
- AbsoluteQuery.cs
- PointLight.cs
- XmlCharType.cs
- HttpCapabilitiesSectionHandler.cs
- FixedBufferAttribute.cs
- VoiceInfo.cs
- Roles.cs
- Types.cs
- ObjectSet.cs
- EdmMember.cs
- TaskSchedulerException.cs
- SqlInternalConnectionSmi.cs
- GenerateScriptTypeAttribute.cs
- IgnorePropertiesAttribute.cs
- SQLString.cs
- Thickness.cs
- MobileControlPersister.cs
- LinkDescriptor.cs
- EventSource.cs
- ClientSession.cs
- BamlResourceDeserializer.cs
- RowType.cs
- RoleGroupCollection.cs
- ConnectionsZoneAutoFormat.cs
- X509ChainElement.cs
- TextPointer.cs
- SafeHandles.cs