/// <summary> /// Evento chamado antes de inserir um ítem na lista /// </summary> /// <param name="e"></param> protected virtual void OnBeforeInsert(BeforeInsertItemEventArge <T> e) { if (BeforeInsert != null) { BeforeInsert(this, e); } }
/// <summary> /// Insere um ítem no índice especificado /// </summary> /// <param name="index">Índice</param> /// <param name="item">Ítem</param> public virtual void Insert(int index, T item) { BeforeInsertItemEventArge <T> ea = new BeforeInsertItemEventArge <T>(item); OnBeforeInsert(ea); if (ea.CanInsert) { internalList.Insert(index, item); OnListChanged(new ListChangedEventArgs <T>(index, item)); OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Add, item)); } }
/// <summary> /// Retorna o elemento da posição específicada /// </summary> /// <param name="index">Índice</param> /// <returns>Ítem</returns> public virtual T this[int index] { get { return(internalList[index]); } set { BeforeInsertItemEventArge <T> ea = new BeforeInsertItemEventArge <T>(value); OnBeforeInsert(ea); if (ea.CanInsert) { internalList[index] = value; OnItemAdded(new ListChangedEventArgs <T>(index, value)); OnListChanged(new ListChangedEventArgs <T>(index, value)); OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Replace, value)); } } }