Merge branch 'master' of github.com:mono/mono
[mono.git] / mcs / class / System.Web / System.Web.UI / ExpressionBindingCollection.cs
index c343ac9ae18e0548781ccb6bfcedd09acf18a83c..a9590228e3295504bf7638a4479809f2abcc92b9 100644 (file)
@@ -4,7 +4,7 @@
 // Authors:
 //     Sanjay Gupta gsanjay@novell.com)
 //
-// (C) 2004 Novell, Inc. (http://www.novell.com)
+// (C) 2004-2010 Novell, Inc. (http://www.novell.com)
 //
 
 //
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
-#if NET_2_0
 using System;
+using System.ComponentModel;
 using System.Collections;
 
 namespace System.Web.UI {
        
        public sealed class ExpressionBindingCollection : ICollection, IEnumerable
        {
+               static readonly object changedEvent = new object ();
+               
                Hashtable list;
                ArrayList removed;
+
+               EventHandlerList events = new EventHandlerList ();
+               
+               public event EventHandler Changed {
+                       add { events.AddHandler (changedEvent, value); }
+                       remove { events.RemoveHandler (changedEvent, value); }
+               }
                
                public ExpressionBindingCollection ()
                {
@@ -131,14 +140,12 @@ namespace System.Web.UI {
                        OnChanged (new EventArgs ());
                }
 
-               public event EventHandler Changed;
-
                void OnChanged (EventArgs e)   
                {
-                       if (Changed != null)
-                               Changed (this, e);
+                       EventHandler eh = events [changedEvent] as EventHandler;
+                       if (eh != null)
+                               eh (this, e);
                }        
 
        }
 }
-#endif