コード例 #1
0
 /// <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);
     }
 }
コード例 #2
0
        /// <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));
            }
        }
コード例 #3
0
 /// <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));
         }
     }
 }