/// <summary> /// Método de inserção de itens na coleção. /// É garantido que qualquer tentativa de adicionar elementos na coleção /// será feita por este método. /// Uma subclasse pode reescrever este método para modificar o comportamento /// de inserção de itens na coleção. /// </summary> /// <param name="store">A instância de lista na qual os itens devem ser inseridos.</param> /// <param name="items">Os itens que estão sendo adicionados à coleção.</param> /// <param name="index"> /// Um índice opcional a partir do qual é esperado que os itens sejam inseridos. /// Quando índice for -1 é esperado que os itens sejam adicionados no fim da coleção. /// </param> protected virtual void OnCommitAdd(ItemStore store, IEnumerable <T> items, int index = -1) { if (index == -1 || index >= store.Count) { store.AddMany(items); } else { foreach (var item in items) { store.AddAt(index++, item); } } }