X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fclass%2FSystem.Web%2FSystem.Web.UI%2FDataBindingCollection.cs;h=c919e35af0c8ad5bddde3f53828f8d7a753be797;hb=d49951ccf584ba637afb1dab7fff714478e3174d;hp=89508c87a59505904a119c36980217a62ac6eb3e;hpb=0e8decdb3782e95107687ba03b6e858e3e283b8f;p=mono.git diff --git a/mcs/class/System.Web/System.Web.UI/DataBindingCollection.cs b/mcs/class/System.Web/System.Web.UI/DataBindingCollection.cs index 89508c87a59..c919e35af0c 100644 --- a/mcs/class/System.Web/System.Web.UI/DataBindingCollection.cs +++ b/mcs/class/System.Web/System.Web.UI/DataBindingCollection.cs @@ -4,8 +4,7 @@ // Duncan Mak (duncan@ximian.com) // // (C) Ximian, Inc. -// - +// Copyright (C) 2005 Novell, Inc (http://www.novell.com) // // Permission is hereby granted, free of charge, to any person obtaining // a copy of this software and associated documentation files (the @@ -27,11 +26,13 @@ // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // -using System; using System.Collections; +using System.Security.Permissions; namespace System.Web.UI { + // CAS - no InheritanceDemand here as the class is sealed + [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)] public sealed class DataBindingCollection : ICollection, IEnumerable { Hashtable list; @@ -70,6 +71,7 @@ namespace System.Web.UI { public void Add (DataBinding binding) { list.Add (binding.PropertyName, binding); + RaiseChanged (); } public void Clear () @@ -79,7 +81,7 @@ namespace System.Web.UI { public void CopyTo (Array array, int index) { - list.CopyTo (array, index); + list.Values.CopyTo (array, index); } public IEnumerator GetEnumerator () @@ -97,6 +99,7 @@ namespace System.Web.UI { { removed.Add (propertyName); list.Remove (propertyName); + RaiseChanged (); } public void Remove (string propertyName, @@ -109,5 +112,21 @@ namespace System.Web.UI { list.Remove (propertyName); } + +#if NET_2_0 + public bool Contains (string propertyName) + { + return list.Contains (propertyName); + } + + public event EventHandler Changed; +#else + internal event EventHandler Changed; +#endif + internal void RaiseChanged () + { + if (Changed != null) + Changed (this, EventArgs.Empty); + } } }