Code:
/ FX-1434 / FX-1434 / 1.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
- TextSelectionProcessor.cs
- BezierSegment.cs
- WebSysDisplayNameAttribute.cs
- ProcessStartInfo.cs
- PriorityRange.cs
- MdbDataFileEditor.cs
- TreeChangeInfo.cs
- COM2Properties.cs
- AsyncOperation.cs
- ExtendedPropertyCollection.cs
- CompiledAction.cs
- WebScriptMetadataInstanceContextProvider.cs
- DataGridViewToolTip.cs
- MediaPlayerState.cs
- InvokeMemberBinder.cs
- UITypeEditors.cs
- ConversionContext.cs
- HtmlSelect.cs
- ClientSettings.cs
- DesignerOptionService.cs
- CodeDelegateCreateExpression.cs
- FacetChecker.cs
- DataServiceQueryProvider.cs
- SystemPens.cs
- _CacheStreams.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- Calendar.cs
- SafeArrayRankMismatchException.cs
- RegionInfo.cs
- InvalidCastException.cs
- WebPartDescriptionCollection.cs
- ReferentialConstraint.cs
- XmlAttributeCollection.cs
- ProviderMetadataCachedInformation.cs
- SchemaSetCompiler.cs
- _ConnectStream.cs
- XmlRootAttribute.cs
- DateTimePicker.cs
- autovalidator.cs
- SiteMap.cs
- ListViewCommandEventArgs.cs
- ProfileGroupSettings.cs
- DesignerOptionService.cs
- BaseComponentEditor.cs
- MobileContainerDesigner.cs
- WebPartConnectionsDisconnectVerb.cs
- StringValidatorAttribute.cs
- PermissionSetTriple.cs
- EntityObject.cs
- SourceFileInfo.cs
- EventSinkHelperWriter.cs
- Rule.cs
- HttpApplication.cs
- BCLDebug.cs
- XmlWellformedWriter.cs
- ExpressionBuilderContext.cs
- LicenseManager.cs
- Literal.cs
- EntityStoreSchemaGenerator.cs
- DiffuseMaterial.cs
- RenderingEventArgs.cs
- PathNode.cs
- FlowNode.cs
- SafePipeHandle.cs
- MouseGestureValueSerializer.cs
- CharKeyFrameCollection.cs
- ProtocolsSection.cs
- ClientRolePrincipal.cs
- StylusPlugInCollection.cs
- FontSourceCollection.cs
- RemotingSurrogateSelector.cs
- QuaternionAnimation.cs
- XamlTemplateSerializer.cs
- SvcMapFile.cs
- XslVisitor.cs
- TableItemStyle.cs
- Command.cs
- HandleScope.cs
- UndoEngine.cs
- StrokeDescriptor.cs
- BitmapCodecInfoInternal.cs
- Border.cs
- WmlLabelAdapter.cs
- VectorAnimationBase.cs
- DbModificationCommandTree.cs
- URLIdentityPermission.cs
- SolidBrush.cs
- ChangePassword.cs
- XNodeValidator.cs
- SpeechUI.cs
- NameValueSectionHandler.cs
- SafeReversePInvokeHandle.cs
- PackageDigitalSignature.cs
- RuleCache.cs
- TypeElement.cs
- EntityTypeEmitter.cs
- BehaviorEditorPart.cs
- _Events.cs
- ColorAnimation.cs
- ModuleBuilder.cs