protected virtual void OnBeforeChange(RejectableCustomEventArgs <T> eventArgs) { var handler = BeforeChange; if (handler != null) { handler(this, eventArgs); } }
public bool PrepareListChange(T item, Operation operation) { var rejArg = new RejectableCustomEventArgs <T>(operation, item, internalList.Count); OnBeforeChange(rejArg); if (!rejArg.IsOperationRejected) { if (operation.ToString() == "Add") { internalList.Add(item); } else { internalList.Remove(item); } var arg = new ListChangedEventArgs <T>(operation, item, internalList.Count); OnChanged(arg); return(true); } else { return(false); } }