Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / xsp / System / Web / UI / ExpressionBindingCollection.cs / 1 / 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;
///
///
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
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.
//------------------------------------------------------------------------------
//
// 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 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
- WebPartCancelEventArgs.cs
- ValidationPropertyAttribute.cs
- RoutedPropertyChangedEventArgs.cs
- initElementDictionary.cs
- WebCategoryAttribute.cs
- ConsumerConnectionPoint.cs
- MergeExecutor.cs
- StylusEditingBehavior.cs
- AdvancedBindingEditor.cs
- DelimitedListTraceListener.cs
- Point4DConverter.cs
- SerializableAttribute.cs
- ByteArrayHelperWithString.cs
- CultureInfo.cs
- SqlConnectionHelper.cs
- ScaleTransform.cs
- ControlOperationInvoker.cs
- SmtpFailedRecipientException.cs
- Operators.cs
- FixedFlowMap.cs
- SmiEventSink_Default.cs
- KerberosSecurityTokenAuthenticator.cs
- MetadataArtifactLoaderXmlReaderWrapper.cs
- OutputScopeManager.cs
- HtmlGenericControl.cs
- SignatureDescription.cs
- __TransparentProxy.cs
- LineVisual.cs
- QueryCursorEventArgs.cs
- XamlSerializationHelper.cs
- DataChangedEventManager.cs
- FrameworkContentElementAutomationPeer.cs
- JoinCqlBlock.cs
- ProfileGroupSettings.cs
- StatusBarPanelClickEvent.cs
- Compiler.cs
- GridItem.cs
- ChangeBlockUndoRecord.cs
- X509ChainPolicy.cs
- WebPartCancelEventArgs.cs
- ToolStripControlHost.cs
- MetafileHeaderWmf.cs
- CodePageEncoding.cs
- Package.cs
- SpeechRecognitionEngine.cs
- AppLevelCompilationSectionCache.cs
- OleDbEnumerator.cs
- CacheRequest.cs
- SqlServer2KCompatibilityAnnotation.cs
- TransformerConfigurationWizardBase.cs
- EntityRecordInfo.cs
- XmlSchemaCompilationSettings.cs
- SoapExtensionTypeElementCollection.cs
- XmlnsCache.cs
- SQLInt32.cs
- HelpEvent.cs
- TextDecoration.cs
- ApplicationActivator.cs
- WorkflowApplicationUnhandledExceptionEventArgs.cs
- CapabilitiesUse.cs
- SignatureToken.cs
- TypeConverterHelper.cs
- PagesSection.cs
- CodeAttributeDeclarationCollection.cs
- DataPointer.cs
- OperatingSystemVersionCheck.cs
- PersistenceTypeAttribute.cs
- CopyOnWriteList.cs
- DeviceContext.cs
- RelatedView.cs
- CellConstant.cs
- ServiceHostingEnvironmentSection.cs
- PageStatePersister.cs
- InputScopeManager.cs
- ProgressiveCrcCalculatingStream.cs
- BuilderInfo.cs
- KeyConstraint.cs
- WebControlsSection.cs
- IdentityHolder.cs
- HttpContext.cs
- SqlExpander.cs
- BooleanFunctions.cs
- AssociativeAggregationOperator.cs
- XpsException.cs
- IndependentlyAnimatedPropertyMetadata.cs
- MetadataCollection.cs
- SizeConverter.cs
- HttpWebResponse.cs
- Int32CollectionConverter.cs
- ColorContextHelper.cs
- OdbcConnectionHandle.cs
- ValueOfAction.cs
- QilIterator.cs
- HttpAsyncResult.cs
- ImageCodecInfo.cs
- HttpProfileGroupBase.cs
- PerformanceCounterCategory.cs
- Hash.cs
- LineBreak.cs
- DbDataRecord.cs