public GMCollectionChangeArgs(GMCollectionChangeAction action, 
     int index, object value, object oldValue, object newValue)
     : base()
 {
     _index = index;
     _value = value;
     _oldValue = oldValue;
     _newValue = newValue;
     _action = action;
 }
 public GMCollectionChangeArgs(GMCollectionChangeAction action, 
     int index, object oldValue, object newValue)
     : this(action, index, null, oldValue, newValue)
 {
 }
 public GMCollectionChangeArgs(GMCollectionChangeAction action, int index, object value)
     : this(action, index, value, null, null)
 {
 }
 public GMCollectionChangeArgs(GMCollectionChangeAction action)
     : this(action, 0, null, null, null)
 {
 }
 private void RaiseChangeEvent(GMCollectionChangeAction action,
     int index, object value, object oldValue, object newValue)
 {
     GMCollectionChangeHandler handler = (GMCollectionChangeHandler)this.Events[Event_CollectionChange];
     if (handler != null)
     {
         handler(new GMCollectionChangeArgs(action, index, value, oldValue, newValue));
     }
 }