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
- HybridDictionary.cs
- LazyLoadBehavior.cs
- ClientSettingsProvider.cs
- CodePageUtils.cs
- MetadataArtifactLoaderResource.cs
- DataProtectionSecurityStateEncoder.cs
- FileFormatException.cs
- IOException.cs
- Int64Storage.cs
- HttpCachePolicy.cs
- ToolstripProfessionalRenderer.cs
- Component.cs
- RoleService.cs
- DataGridView.cs
- indexingfiltermarshaler.cs
- DataGridViewLinkCell.cs
- DataTrigger.cs
- BaseParagraph.cs
- UseLicense.cs
- SrgsElementFactoryCompiler.cs
- XmlILStorageConverter.cs
- GenericIdentity.cs
- ClonableStack.cs
- nulltextcontainer.cs
- SystemNetHelpers.cs
- Transform3DGroup.cs
- UnhandledExceptionEventArgs.cs
- QilUnary.cs
- TreeViewAutomationPeer.cs
- EventPrivateKey.cs
- HttpStreamXmlDictionaryReader.cs
- Transactions.cs
- ThemeDirectoryCompiler.cs
- ProtocolReflector.cs
- LassoHelper.cs
- MemberHolder.cs
- WebPartMinimizeVerb.cs
- UICuesEvent.cs
- Material.cs
- CollectionViewProxy.cs
- SQLMembershipProvider.cs
- TdsParserSessionPool.cs
- VariableQuery.cs
- TreeNode.cs
- TabletDeviceInfo.cs
- Compiler.cs
- MultidimensionalArrayItemReference.cs
- StatusBar.cs
- UrlMapping.cs
- ProfileGroupSettings.cs
- OneOfElement.cs
- ContextMenuStrip.cs
- EdmTypeAttribute.cs
- CustomCredentialPolicy.cs
- CompiledRegexRunner.cs
- StrongNameKeyPair.cs
- Process.cs
- LiteralControl.cs
- CustomGrammar.cs
- DataGridViewHitTestInfo.cs
- HttpChannelBindingToken.cs
- File.cs
- OrderByExpression.cs
- PackageFilter.cs
- ScrollEvent.cs
- DockPatternIdentifiers.cs
- ButtonFlatAdapter.cs
- _DisconnectOverlappedAsyncResult.cs
- SafeRegistryHandle.cs
- AttachedPropertyBrowsableAttribute.cs
- DomainConstraint.cs
- EnumBuilder.cs
- TraceData.cs
- ProcessDesigner.cs
- CroppedBitmap.cs
- RenderingEventArgs.cs
- BitmapEffectInput.cs
- VectorCollectionConverter.cs
- TextParagraphProperties.cs
- TextEditorLists.cs
- WebCategoryAttribute.cs
- BaseTemplateBuildProvider.cs
- KeyEvent.cs
- Axis.cs
- BasicViewGenerator.cs
- EventRecordWrittenEventArgs.cs
- ClockController.cs
- StylusOverProperty.cs
- ManagedFilter.cs
- XmlIncludeAttribute.cs
- LockedAssemblyCache.cs
- PageRequestManager.cs
- GridPattern.cs
- TreeView.cs
- OrderedDictionaryStateHelper.cs
- RealProxy.cs
- SessionState.cs
- HierarchicalDataTemplate.cs
- TextEditorTyping.cs
- ItemCheckEvent.cs