+2007-03-13 Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+ * ListView.cs: Implement ItemChecked 2.0 event. Also cast to
+ the correct handler in OnItemCheck method (ItemCheckEventHandler
+ instead of EventHandler). This used to throw an InvalidCastException.
+
2007-03-13 Jackson Harper <jackson@ximian.com>
* TextBoxBase.cs: Calculate the document before the handle is
static object ItemDragEvent = new object ();
static object SelectedIndexChangedEvent = new object ();
#if NET_2_0
+ static object ItemCheckedEvent = new object ();
static object CacheVirtualItemsEvent = new object ();
static object RetrieveVirtualItemEvent = new object ();
#endif
remove { Events.RemoveHandler (ItemCheckEvent, value); }
}
+#if NET_2_0
+ public event ItemCheckedEventHandler ItemChecked {
+ add { Events.AddHandler (ItemCheckedEvent, value); }
+ remove { Events.RemoveHandler (ItemCheckedEvent, value); }
+ }
+#endif
+
public event ItemDragEventHandler ItemDrag {
add { Events.AddHandler (ItemDragEvent, value); }
remove { Events.RemoveHandler (ItemDragEvent, value); }
ItemCheckEventArgs ice = new ItemCheckEventArgs (item.Index, curr_state, new_state);
owner.OnItemCheck (ice);
+
+#if NET_2_0
+ // ItemCheckedEvent goes after the checked state has changed
+ ItemCheckedEventArgs icea = new ItemCheckedEventArgs (item);
+ owner.OnItemChecked (icea);
+#endif
}
private void ItemsMouseDown (object sender, MouseEventArgs me)
protected virtual void OnItemCheck (ItemCheckEventArgs ice)
{
- EventHandler eh = (EventHandler)(Events [ItemCheckEvent]);
+ ItemCheckEventHandler eh = (ItemCheckEventHandler)(Events [ItemCheckEvent]);
if (eh != null)
eh (this, ice);
}
+#if NET_2_0
+ protected virtual void OnItemChecked (ItemCheckedEventArgs icea)
+ {
+ ItemCheckedEventHandler eh = (ItemCheckedEventHandler)(Events [ItemCheckedEvent]);
+ if (eh != null)
+ eh (this, icea);
+ }
+#endif
+
protected virtual void OnItemDrag (ItemDragEventArgs e)
{
EventHandler eh = (EventHandler)(Events [ItemDragEvent]);