Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / 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();
}
}
}
}
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ToolboxItem.cs
- FileIOPermission.cs
- FormViewModeEventArgs.cs
- DockProviderWrapper.cs
- EntryWrittenEventArgs.cs
- RootAction.cs
- BuildProvider.cs
- DesignerTransaction.cs
- SystemUnicastIPAddressInformation.cs
- X509Chain.cs
- SqlDataSourceStatusEventArgs.cs
- PropertyToken.cs
- TextTreeInsertUndoUnit.cs
- XmlCharCheckingWriter.cs
- DefaultProxySection.cs
- BinHexEncoding.cs
- XmlStreamStore.cs
- TraceXPathNavigator.cs
- PaginationProgressEventArgs.cs
- HeaderedContentControl.cs
- CompressEmulationStream.cs
- FormsAuthenticationModule.cs
- VersionedStreamOwner.cs
- ByteStreamMessageEncoderFactory.cs
- TableAutomationPeer.cs
- SR.cs
- NavigationEventArgs.cs
- InternalSafeNativeMethods.cs
- XmlExceptionHelper.cs
- TogglePattern.cs
- SimpleMailWebEventProvider.cs
- log.cs
- WebEncodingValidator.cs
- WCFModelStrings.Designer.cs
- NameSpaceExtractor.cs
- IUnknownConstantAttribute.cs
- DiscoveryReference.cs
- CodeParameterDeclarationExpressionCollection.cs
- DrawingCollection.cs
- CultureSpecificStringDictionary.cs
- ElementsClipboardData.cs
- PathFigure.cs
- TemplateInstanceAttribute.cs
- PermissionSet.cs
- AmbientLight.cs
- CaseInsensitiveHashCodeProvider.cs
- BackStopAuthenticationModule.cs
- StoryFragments.cs
- Table.cs
- ViewKeyConstraint.cs
- NavigationEventArgs.cs
- DefaultPrintController.cs
- TextOnlyOutput.cs
- TreeNodeClickEventArgs.cs
- SoapExtensionTypeElementCollection.cs
- ProcessProtocolHandler.cs
- EditingCommands.cs
- WebPartConnectVerb.cs
- KnownTypes.cs
- EntryWrittenEventArgs.cs
- AnnotationElement.cs
- TailCallAnalyzer.cs
- PngBitmapDecoder.cs
- basecomparevalidator.cs
- ResourceProviderFactory.cs
- HttpDebugHandler.cs
- ScriptServiceAttribute.cs
- EditorZoneBase.cs
- WCFModelStrings.Designer.cs
- ExchangeUtilities.cs
- SimpleType.cs
- MemoryResponseElement.cs
- EventBuilder.cs
- FormViewUpdatedEventArgs.cs
- BamlRecordWriter.cs
- SRGSCompiler.cs
- XmlDataSource.cs
- EventLogPermissionEntryCollection.cs
- Ports.cs
- UpDownEvent.cs
- CommandDevice.cs
- LinearKeyFrames.cs
- DateTimePicker.cs
- CustomCategoryAttribute.cs
- TreeIterator.cs
- PageBreakRecord.cs
- DoWorkEventArgs.cs
- GeometryConverter.cs
- XmlSerializerFaultFormatter.cs
- XmlKeywords.cs
- KeyboardNavigation.cs
- DescendentsWalker.cs
- TransformConverter.cs
- AttributeUsageAttribute.cs
- HttpHeaderCollection.cs
- Stackframe.cs
- VisualBrush.cs
- BehaviorEditorPart.cs
- ExtendedTransformFactory.cs
- DocumentPageTextView.cs