// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
+using System.ComponentModel;
using System.Collections;
using System.Security.Permissions;
[AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
public sealed class DataBindingCollection : ICollection, IEnumerable
{
+ static readonly object changedEvent = new object ();
Hashtable list;
ArrayList removed;
+
+ EventHandlerList events = new EventHandlerList ();
+#if NET_2_0
+ public
+#else
+ internal
+#endif
+ event EventHandler Changed {
+ add { events.AddHandler (changedEvent, value); }
+ remove { events.RemoveHandler (changedEvent, value); }
+ }
public DataBindingCollection ()
{
{
return list.Contains (propertyName);
}
-
- public event EventHandler Changed;
-
- public
-#else
- internal event EventHandler Changed;
-
- internal
#endif
- void RaiseChanged ()
+
+ internal void RaiseChanged ()
{
- if (Changed != null)
- Changed (this, EventArgs.Empty);
+ EventHandler eh = events [changedEvent] as EventHandler;
+ if (eh != null)
+ eh (this, EventArgs.Empty);
}
}
}