protected override T AddItem(T newItem, int index) { if (_collectionOrder != null) { index = _collectionOrder.AttachToItemAndDetermineCorrectIndex(newItem); } return(base.AddItem(newItem, index)); }
private TItem UnfilteredAddItem(TSource sourceItem, TItem newItem, int originalIndex) { int index = -1; try { _log.LazyAdd("Add Converted {0} @ {1}", new Lazy <string>(newItem.ToString), originalIndex); index = _collectionOrder == null ? originalIndex : _collectionOrder.AttachToItemAndDetermineCorrectIndex(newItem); base.AddItem(sourceItem, newItem, index); _log.LazyAdd("Post add collection : {0}", View.Select(v => v.ToString()).Aggregate((t, i) => t + "@@@" + i)); return(newItem); } catch (Exception e) { Debug.Print("Exception while adding item {0} @ {1}: {2}", newItem == null ? "NULL" : newItem.ToString(), index, e); Debug.Print(_log.ToString()); throw; } }